support scrolling fillviewport example android xml android-layout android-scrollview android-nestedscrollview

android - scrolling - nested scroll views



Android: ScrollView vs NestedScrollView (6)

Además de las ventajas enumeradas en las respuestas dadas, una ventaja más de NestedScrollView sobre ScrollView es su compatibilidad con CoordinatorLayout. ScrollView no coopera con CoordinatorLayout. Debe usar NestedScrollView para obtener el comportamiento de "desplazamiento fuera de la pantalla" para la barra de herramientas.

La barra de herramientas no colapsará con Scrollview como elemento secundario de CoordinatorLayout

¿Cuál es la diferencia entre ScrollView y NestedScrollView ? Ambos extienden FrameLayout . Quiero saber en profundidad los pros y los contras de ambos.


Además del desplazamiento anidado, NestedScrollView agregó una funcionalidad importante, que incluso podría hacerla interesante fuera de los contextos anidados: tiene soporte para OnScrollChangeListener . Agregar un OnScrollChangeListener al ScrollView original debajo de la API 23 requirió subclasificar ScrollView o jugar con el ViewTreeObserver de ScrollView que a menudo significa aún más trabajo que subclasificar. Con NestedScrollView se puede hacer usando el setter incorporado .


Creo que una ventaja de usar la vista de desplazamiento anidado es que el diseño del cooridinador solo escucha los eventos de desplazamiento anidados. Entonces si por ej. desea que la barra de herramientas se desplace hacia abajo cuando desplace el contenido de la actividad, solo se desplazará hacia abajo cuando esté usando la vista de desplazamiento anidada en su diseño. Si usa una vista de desplazamiento normal en su diseño, la barra de herramientas no se desplazará cuando el usuario desplace el contenido.


NestedScrollView es como ScrollView, pero en NestedScrollView podemos poner otras vistas de desplazamiento como elementos secundarios, por ejemplo, RecyclerView.

Pero si colocamos RecyclerView dentro de NestedScrollView, se altera el desplazamiento suave de RecyclerView. Entonces, para recuperar el desplazamiento suave, hay un truco:

ViewCompat.setNestedScrollingEnabled(recyclerView, false);

coloque la línea anterior después de configurar el adaptador para recyclerView


NestedScrollView como su nombre indica, se usa cuando es necesario una vista de desplazamiento dentro de otra vista de desplazamiento. Normalmente esto sería difícil de lograr ya que el sistema no podría decidir qué vista desplazarse.

Aquí es donde entra NestedScrollView .


NestedScrollView

NestedScrollView es como ScrollView, pero admite actuar como un elemento principal de desplazamiento anidado y un elemento secundario en las versiones nuevas y antiguas de Android. El desplazamiento anidado está habilitado de forma predeterminada.

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

ScrollView

Contenedor de diseño para una jerarquía de vistas que el usuario puede desplazar, lo que permite que sea más grande que la pantalla física. Un ScrollView es un FrameLayout, lo que significa que debe colocar un elemento secundario que contenga todo el contenido para desplazarse; este niño puede ser un administrador de diseño con una compleja jerarquía de objetos

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