Android: le ScrollView vs NestedScrollView
Quelle est la différence entre ScrollView
et NestedScrollView
? Deux d'entre eux, d'étendre FrameLayout
. Je veux connaître en profondeur les avantages et les inconvénients de chacun d'eux.
Vous devez vous connecter pour publier un commentaire.
NestedScrollView
comme son nom l'indique est utilisé quand il ya un besoin pour un défilement de vue à l'intérieur d'un autre défilement. Normalement, ce serait difficile à réaliser, car le système serait incapable de décider quelle vue de les faire défiler.C'est là que
NestedScrollView
vient en.En plus de la imbriquée de défilement
NestedScrollView
ajouté une fonctionnalité majeure, qui pourrait même le rendre intéressant en dehors de contextes imbriqués: Il a construire en chargeOnScrollChangeListener
. L'ajout d'unOnScrollChangeListener
à l'origineScrollView
ci-dessous API 23 nécessaire de sous-classementScrollView
ou de déconner avec leViewTreeObserver
de laScrollView
ce qui signifie souvent même plus de travail que de sous-classement. AvecNestedScrollView
il peut être fait à l'aide de la construire-dans le setter.NestedScrollView
https://developer.android.com/reference/android/support/v4/widget/NestedScrollView.html
ScrollView
https://developer.android.com/reference/android/widget/ScrollView.html
Autres que les avantages énumérés dans les réponses données, un avantage de plus de NestedScrollView sur le ScrollView est sa compatibilité avec CoordinatorLayout. La ScrollView ne coopère pas avec l'CoordinatorLayout. Vous devez utiliser NestedScrollView à faire "défiler à l'écran" le comportement de la barre d'outils.
Barre d'outils ne s'affaisse pas avec le Scrollview comme enfant de CoordinatorLayout
NestedScrollView est juste comme le ScrollView, mais dans NestedScrollView nous pouvons mettre à défilement autres points de vue que les enfants d'il, par exemple, RecyclerView.
Mais si nous mettons RecyclerView à l'intérieur de NestedScrollView, RecyclerView de défilement lisse est perturbé. Afin de ramener à défilement lisse, il y a truc:
mettre au-dessus de la ligne après le réglage de l'adaptateur pour recyclerView.