2016-01-13 17 views
51

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

74

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

+0

Hier ist ein Beispiel-App eine NestedScrollView innerhalb eines übergeordneten Scroll demonstriert: https://github.com/AdamSHurwitz/NestedScrolling –

14

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

8

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 ScrollViewunter 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.

0

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