Was ist der Unterschied zwischen ScrollView
und NestedScrollView
? Beide erstrecken sich FrameLayout
. Ich möchte die Vor- und Nachteile beider genau kennen.
android
xml
android-layout
android-scrollview
android-nestedscrollview
Chintan Soni
quelle
quelle
Antworten:
NestedScrollView
Wie der Name schon sagt, wird es verwendet, wenn eine Bildlaufansicht in einer anderen Bildlaufansicht erforderlich ist. Normalerweise ist dies schwierig zu erreichen, da das System nicht entscheiden kann, welche Ansicht gescrollt werden soll.Hier kommt ins
NestedScrollView
Spiel.quelle
Zusätzlich zum verschachtelten Scrollen wurde
NestedScrollView
eine wichtige Funktion hinzugefügt, die es auch außerhalb verschachtelter Kontexte interessant machen könnte: Es hat Unterstützung für eingebautOnScrollChangeListener
. Das Hinzufügen von aOnScrollChangeListener
zum OriginalScrollView
unter API 23 erforderte UnterklassenScrollView
oder das Herumspielen mit demViewTreeObserver
von,ScrollView
was oft noch mehr Arbeit bedeutet als Unterklassen. DamitNestedScrollView
kann mit dem eingebauten Setter gearbeitet werden .quelle
Abgesehen von den in den Antworten aufgeführten Vorteilen ist ein weiterer Vorteil von NestedScrollView gegenüber ScrollView die Kompatibilität mit CoordinatorLayout. Die ScrollView kooperiert nicht mit dem CoordinatorLayout. Sie müssen NestedScrollView verwenden, um das Verhalten "Außerhalb des Bildschirms scrollen" für die Symbolleiste zu erhalten.
Die Symbolleiste wird mit Scrollview als untergeordnetes Element von CoordinatorLayout nicht reduziert
quelle
NestedScrollView
https://developer.android.com/reference/android/support/v4/widget/NestedScrollView.html
ScrollView
https://developer.android.com/reference/android/widget/ScrollView.html
quelle
NestedScrollView ist genau wie ScrollView, aber in NestedScrollView können wir andere Bildlaufansichten als untergeordnetes Element einfügen, z. B. RecyclerView.
Wenn wir jedoch RecyclerView in NestedScrollView einfügen, wird das reibungslose Scrollen von RecyclerView gestört. Um das reibungslose Scrollen wiederherzustellen, gibt es einen Trick:
Setzen Sie die obige Zeile, nachdem Sie den Adapter für recyclerView eingestellt haben.
quelle
Ich denke, ein Vorteil der Verwendung der verschachtelten Bildlaufansicht besteht darin, dass das Cooridinator-Layout nur auf verschachtelte Bildlaufereignisse wartet. Also wenn zum Beispiel. Wenn Sie möchten, dass die Symbolleiste beim Scrollen des Aktivitätsinhalts nach unten gescrollt wird, wird sie nur nach unten gescrollt, wenn Sie in Ihrem Layout eine verschachtelte Bildlaufansicht verwenden. Wenn Sie in Ihrem Layout eine normale Bildlaufansicht verwenden, wird die Symbolleiste nicht gescrollt, wenn der Benutzer den Inhalt scrollt.
quelle