¿Cuál es la diferencia entre ScrollViewy NestedScrollView? Ambos se extienden FrameLayout. Quiero saber en profundidad los pros y los contras de ambos.
                    
                        android
                                xml
                                android-layout
                                android-scrollview
                                android-nestedscrollview
                                
                    
                    
                        Chintan Soni
fuente
                
                fuente

Respuestas:
NestedScrollViewcomo 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
NestedScrollViewentra.fuente
Además del desplazamiento anidado, se
NestedScrollViewagregó una funcionalidad importante, que incluso podría hacerlo interesante fuera de los contextos anidados: tiene soporte de compilaciónOnScrollChangeListener. AgregarOnScrollChangeListenera laScrollViewAPI 23 original a continuación requería subclasificarScrollViewo jugar con elViewTreeObserverde loScrollViewque a menudo significa aún más trabajo que la subclasificación. ConNestedScrollViewesto se puede hacer usando el setter incorporado .fuente
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
fuente
NestedScrollView
https://developer.android.com/reference/android/support/v4/widget/NestedScrollView.html
ScrollView
https://developer.android.com/reference/android/widget/ScrollView.html
fuente
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:
coloque la línea anterior después de configurar el adaptador para recyclerView.
fuente
Creo que un beneficio 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 utiliza una vista de desplazamiento normal en su diseño, la barra de herramientas no se desplazará cuando el usuario desplace el contenido.
fuente