Was ist der Unterschied zwischen ScrollView
und NestedScrollView
eigentlich? Ich habe beide benutzt. Beide erweitern, FrameLayout
. Ich möchte die Vor- und Nachteile beider kennen. Wenn mir jemand helfen kann. Vielen Dank.android: ScrollView vs NestedScrollView
Antwort
NestedScrollView
wie der Name sagt, wird verwendet, wenn eine Scroll-Ansicht in einer anderen Scroll-Ansicht benötigt wird. Normalerweise wäre dies schwierig durchzuführen, da das System nicht in der Lage wäre zu entscheiden, welche Ansicht zu scrollen ist.
Hier NestedScrollView
kommt.
prüfen diese example
NestedScrollView
NestedScrollView ist wie Scrollview, aber es unterstützt als sowohl eine verschachtelte Scrollen Elternteil handeln und Kind sowohl auf neue als auch auf alte Versionen von Android. Verschachteltes Scrollen ist standardmäßig aktiviert.
https://developer.android.com/reference/android/support/v4/widget/NestedScrollView.html
Scroll
Layout-Behälter für eine Ansichtshierarchie, die von dem Benutzer gescrollt werden kann, so dass sie als die physikalische Anzeige größer. A ScrollView ist ein FrameLayout, das heißt, Sie sollten ein Kind darin platzieren , das den gesamten Inhalt zum Blättern enthält; dieses Kind kann selbst ein Layout-Manager mit einer komplexen Hierarchie von Objekten
https://developer.android.com/reference/android/widget/ScrollView.html
Neben die nested scrollingNestedScrollView
hinzugefügt eine große Funktionalität sein, die es sogar interessant außerhalb von verschachtelten Kontexten machen könnten: Es hat Unterstützung für OnScrollChangeListener
erstellen. Hinzufügen eines OnScrollChangeListener
zu dem ursprünglichen ScrollView
unter API 23 erforderliche Unterklasse ScrollView
oder messing around with the ViewTreeObserver
of the ScrollView
was oft noch mehr Arbeit als Unterklassen bedeutet. Mit NestedScrollView
kann die build-in setter verwendet werden.
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 arbeitet nicht mit dem CoordinatorLayout zusammen. Sie müssen NestedScrollView verwenden, um "scroll off-screen" Verhalten für die Symbolleiste zu erhalten.
Toolbar will not collapse with Scrollview as child of CoordinatorLayout
Hier ist ein Beispiel-App eine NestedScrollView innerhalb eines übergeordneten Scroll demonstriert: https://github.com/AdamSHurwitz/NestedScrolling –