Horizontal RecyclerView interior vertical ScrollView
Así que tengo un RecyclerView horizontal dentro de un ScrollView vertical. Todo dentro de mi diseño se muestra bien y todo se desplaza en las direcciones que quiero y lo hace sin problemas.
El único problema que tengo es que el RecyclerView está por debajo de algún otro contenido en el ScrollView y cuando el RecyclerView es parcialmente visible, alineará la parte inferior del RecyclerView con la parte inferior de la pantalla al arrancar. Esto significa que el contenido por encima de la RecyclerView es expulsado de la pantalla.
- ¿Efecto de desplazamiento personalizado para scrollview?
- Android: cómo hacer scrollview infinito con desplazamiento sin fin
- Anulación de onTouchEvent que compite con ScrollView
- Sin gravedad para scrollview. Cómo hacer que el contenido dentro de scrollview como centro
- Android WebView dentro de ScrollView solo desplaza scrollview
¿Alguien sabe por qué sucede esto, y cómo puedo solucionarlo?
Aquí hay un diseño simple que hace lo que acabo de describir. Ni siquiera necesita rellenar el RecyclerView, todavía lo hará.
<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:layout_width="match_parent" android:layout_height="500dp" android:background="#fff"/> <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="200dp" android:background="#000"/> </LinearLayout> </ScrollView>
- Centro de contenido en vista de desplazamiento
- Mover EditText en NestedScrollView cuando aparece el teclado virtual
- ScrollView no se desplaza si el teclado virtual está visible
- ¿Cómo desactivar y activar el desplazamiento en Android ScrollView?
- Cómo hacer encabezados de sección pegajosa (como iOS) en Android?
- cuando listview desplazarse ese tiempo edittext establecer el valor predeterminado
- Desplácese hacia arriba ScrollView lentamente
- Css + Android - no hay respuesta de clic en scrollable / Lista de vista
Resulta que este problema fue reportado a Google aquí Edición – 81854
De acuerdo con Google que está funcionando como se pretende. El problema es que RecyclerView tiene focusableInTouchMode
establecido en true. Para solucionar el problema establecí focusableInTouchMode
y focusable
a true en la vista superior de ScrollView.
A continuación se muestra la corrección para el ejemplo de código proporcionado en la pregunta original:
<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:layout_width="match_parent" android:layout_height="500dp" android:background="#fff" android:focusableInTouchMode="true" android:focusable="true"/> <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="200dp" android:background="#000"/> </LinearLayout> </ScrollView>
- Galaxy Tab 10.1 resolución de pantalla utilizable (- la barra de menú)
- Cómo desactivar todos los sonidos en Android