Ist es möglich, Daten in WebViews in den Kindern eines RecyclerViews vorab zu laden?

8

Ich habe eine RecyclerView mit dem LinearLayoutManager, wo jede der untergeordneten Karten eine WebView enthält. Ich lade die Daten mit der Methode loadData () in das WebView. Die Dinge funktionieren gut, wenn ich in der Liste nach unten scrolle, aber wenn ich weit genug nach unten scrolle, dass die obigen Ansichten recycelt werden, bekomme ich Probleme, wenn ich zurück scrolle.

Wenn das RecyclerView das obige untergeordnete Element wieder anbringt, lädt es die Daten erneut in das WebView, lädt es jedoch nicht erneut, bis das WebView auf dem Bildschirm angezeigt wird. Wenn das WebView seine Daten lädt, werden alle untergeordneten Elemente auf dem Bildschirm angezeigt. Anstatt das untere Ende des WebViews langsam auf dem Bildschirm zu erscheinen, wenn ich nach oben scrolle, springt das gesamte WebView auf den Bildschirm oben im WebView. Es ist sehr störend und überhaupt nicht glatt.

Gibt es eine Möglichkeit, dem Adapter oder Layout-Manager mitzuteilen, dass er die WebViews im Voraus laden soll? Ich würde mit meiner App zufrieden sein, wenn die RecyclerView reibungslos läuft, aber gerade jetzt ist es ziemlich unbrauchbar, wenn ich zurück scrollen.

    
wile_e8 03.07.2015, 03:47
quelle

2 Antworten

3

Probieren Anpassen der Größe von WebView an die Inhaltsgröße

Sehen Sie sich auch Recycler-Ansicht - Ansichten vor dem Cache

In Kombination funktioniert es ziemlich gut, aber ich versuche immer noch, das Scrollen zu verbessern.

    
Derek Beattie 16.08.2015 02:22
quelle
2
Ich weiß, dass das eine alte Frage ist, aber ich stolperte darüber, als ich nach einer anderen Antwort forschte. Versuchen Sie, die Größe des Objektansichtscaches höher festzulegen.

RecyclerView.setItemViewCacheSize (int cacheSize)

    
airowe 21.01.2016 16:16
quelle