scrolling recyclerview not inside ejemplo android android-recyclerview android-nestedscrollview

android - not - scroll recyclerview



vista scrollview+recycler anidada, comportamiento extraño de autoscroll (3)

Como dijo Harshit en Android, evitar que la vista recicladora anidada se recoloque automáticamente

puede agregar este atributo a su diseño lineal. El diseño directo de Linear de su scrollView.

android:descendantFocusability="blocksDescendants"

Me ayudó.

En un buscador de vistas tengo varios fragmentos, uno de ellos usa una vista de desplazamiento anidada con un encabezado y una vista de reciclador:

<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/scrollview" android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="com.m360.android.fragment.Members.MemberDetailsFragment"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingTop="20dp"> <header/> <android.support.v7.widget.RecyclerView android:id="@+id/recycler" android:layout_width="match_parent" android:layout_height="wrap_content" android:clipToPadding="false" android:paddingTop="0dp" /> </LinearLayout> </android.support.v4.widget.NestedScrollView>

La etiqueta "encabezado" representa un diseño complejo que no quería publicar aquí ya que alarga mucho el código.

cuando cambio entre las pestañas, se desplaza hacia la vista del reciclador. El encabezado está oculto, tengo que desplazarme hacia arriba para verlo.

¿Alguna idea sobre qué causa eso? No quiero usar un tipo en mi adaptador si puedo evitarlo.


Tenemos un problema similar. Tenemos un RecyclerView vertical. Cada elemento de este RecyclerView vertical contiene un RecyclerView horizontal, como en la aplicación Android TV.

Cuando actualizamos las libs de soporte de 23.4.0 a 24.0.0, apareció automáticamente el desplazamiento automático. En particular, cuando abrimos una Activity y luego volvemos, la vertical RecyclerView desplaza hacia arriba para que la fila horizontal actual de RecyclerView no se corte y la fila se muestre por completo.

Agregar android:descendantFocusability="blocksDescendants" soluciona el problema.

Sin embargo, he encontrado otra solución , que también funciona. En nuestro caso, el RecyclerView vertical está contenido dentro de FrameLayout . Si agrego android:focusableInTouchMode="true" a este FrameLayout , el problema desaparece.

Incluso hay una tercera solución mencionada aquí , que básicamente consiste en llamar a setFocusable(false) en el secundario / RecyclerView s interno. No he intentado esto.

Por cierto, hay un problema abierto en el AOSP .


setFocusableInTouchMode=true para el diseño hijo (puede ser LinearLayout ) de NestedScrollView