android: ScrollView vs NestedScrollView

Quelle est la différence entre ScrollView et NestedScrollView en fait ? J'ai utilisé les deux d'entre eux. Tous les deux, étendre FrameLayout . Je veux connaître en profondeur le pour et le contre des deux. Si quelqu'un peut s'il vous plaît aider moi. Grâce.

73
demandé sur Amit Vaghela 2016-01-13 21:08:59

4 réponses

NestedScrollView comme son nom l'indique est utilisé lorsqu'il y a un besoin d'une vue de défilement à l'intérieur d'une autre vue de défilement. Normalement, cela serait difficile à réaliser puisque le système serait incapable de décider quelle vue Faire défiler.

c'est ici que NestedScrollView entre en jeu.

106
répondu Roshan 2018-07-07 12:54:04

NestedScrollView

NestedScrollView est exactement comme ScrollView, mais il supporte agir comme à la fois un parent de défilement imbriqué et l'enfant sur les deux versions nouvelles et anciennes de Android. Imbriqués, le défilement est activé par défaut.

https://developer.android.com/reference/android/support/v4/widget/NestedScrollView.html

ScrollView

conteneur de mise en page pour une hiérarchie de vues pouvant être l'utilisateur, lui permettant d'être plus grand que l'affichage physique. Un ScrollView est un FrameLayout, ce qui signifie que vous devez y placer un enfant contenant tout le contenu à faire défiler; cet enfant peut être lui-même layout manager avec une hiérarchie complexe d'objets

https://developer.android.com/reference/android/widget/ScrollView.html

16
répondu Amit Vaghela 2016-06-23 07:14:38

en plus du scrolling imbriqué NestedScrollView a ajouté une fonctionnalité majeure, qui pourrait même le rendre intéressant en dehors des contextes imbriqués: il a construit en support pour OnScrollChangeListener . Ajouter un OnScrollChangeListener à l'original ScrollView sous API 23 sous-classement requis ScrollView ou brouillant avec le ViewTreeObserver du ScrollView ce qui signifie souvent encore plus de travail que le sous-classement. Avec NestedScrollView il peut être fait en utilisant le setter .

14
répondu Fabian Ochmann 2017-08-11 08:33:11

outre les avantages énumérés dans les réponses données, un autre avantage de NestedScrollView par rapport à ScrollView est sa compatibilité avec CoordinatorLayout. Le ScrollView ne coopère pas avec le CoordinatorLayout. Vous devez utiliser NestedScrollView pour obtenir le comportement "scroll off-screen" pour la barre d'outils.

de la Barre d'outils ne s'affaisse pas avec le Scrollview comme enfant de CoordinatorLayout

9
répondu Suraj 2017-10-21 06:52:15