Wie scrollen Sie unabhängig voneinander in Zeilen und Spalten (eine Netflix-App) auf Android in einem WebView?

9

In der Android-App von Netflix gibt es ein WebView, das fast den gesamten App-Bereich abdeckt. Wenn Sie eine Zeile von links nach rechts ziehen, wird nur diese Zeile geblättert, und zwar mit einem schönen inertialen Scrolling. Wenn Sie nach oben oder unten ziehen, wird die gesamte Seite nach oben und unten verschoben.

Ich habe es geschafft, diese Funktionalität auf iOS zu duplizieren (sowohl in einem eigenen WebView als auch in Safari), aber nicht auf Android. Auf Android-Geräten ist alles, was ich mache, entweder mühsam langsam zu scrollen, oder Sie müssen sehr vorsichtig sein, vertikal zu scrollen, um durch Berühren im Hintergrundbereich zwischen Zeilen zu beginnen. Keine von beiden ist akzeptabel. Natürlich möchte ich die scrollende Animation nicht in Javascript machen, da das zu langsam ist.

Ich weiß, dass Netflix es mit einem WebView macht, also ... was ist der Trick, den sie verwenden?

Ich habe versucht, die CSS-Eigenschaften (für die Zeile div) zu verwenden:

%Vor%

ohne Erfolg.

    
rob 09.08.2013, 22:19
quelle

3 Antworten

3

Wenn Sie das css Android-kompatible für Ihr spezielles WebView nicht bekommen können, warum erstellen Sie nicht serverseitige Funktionalität, die nur angeforderte Zeilen in separate WebViews ausgibt?

Ich würde folgendes tun:
* Fragen Sie den Webserver ab, um festzustellen, wie viele Zeilen vorhanden sind.
* Fügen Sie programmgesteuert die Anzahl der Zeilen hinzu, die der Webserver angibt. Wenn der Server beispielsweise meldet, dass fünf Zeilen vorhanden sind, erstellen Sie fünf WebViews mit jeweils eigenen URL-Parametern (Beispiel: Das erste WebView fragt mydomain.com/wv?row=1 ab).
* Setzen Sie jede WebView-Zeile in eine HorizontalScrollView und fügen Sie alle HorizontalScrollViews in eine VerticalScrollView ein.
* Wechseln Sie bei einer URL-Änderung zu einem ganzseitigen WebView, in dem die Details der angeklickten Kachel angezeigt werden.
* Bei gedrückter Taste, schließen Sie die ganze Seite WebView und laden Sie die Zeilen neu.

Nicht die sauberste Lösung, aber sollte gut funktionieren.

    
aggregate1166877 20.08.2013 08:08
quelle
0

Versuchen Sie, iScroll in Ihrem HTML-Code zu verwenden.
In dem Link finden Sie den Quellcode, Beispiele und Javascript-Bibliotheken.
Es hat auch einige nützliche Rückrufe.
Ich benutze es sehr, wenn ich mit WebViews arbeite.

    
NickF 20.08.2013 10:55
quelle
0

Netflix könnte die benutzerdefinierte Gestenerkennung verwendet haben und gesehen haben, ob die Bildlaufleiste horizontal, dann vertikal oder mehr vertikal als horizontal war, und je nachdem, wie weit die Bildlaufleiste entfernt war, scrollt das Webbild horizontal oder vertikal

    
superuser 21.08.2013 15:34
quelle