Android: RecyclerView dentro de un ScrollView (o paralaje)

Tengo un fragmento con 2 cardviews con múltiples controles dentro.

Debajo del segundo cardview Tengo un recyclerview , esto trabaja perfecto .

El problema es que el reciclerview comienza muy abajo de la pantalla , y el desplazamiento del recylcerview es muy pequeño .

Previamente utilizado un listview, y esto me mantuvo en forma su contenido y por lo tanto hacer desplazarse a través de la pantalla a la vez, pero con recylclerview no puede.

¿Cómo hacer cuando me desplazo en el recyclerview, los controles suben como efecto de paralaje?

EDIT: más claro, imagina 2 cardviews en un fragmento, estos ocupan el 80% de la pantalla, por encima de estos, una recyclerview con una lista de 100 elementos, pero el scroll es tan pequeño … el listview me permite adaptarme a la " Contenido "y desplaza la pantalla completa a la vez.

Este es mi diseño XML:

<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/svScroll" android:layout_width="fill_parent" android:layout_height="fill_parent" android:fillViewport="true" > <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" > <include android:id="@+id/cvCampos1" layout="@layout/ctlcabeceralibreta" /> <include android:id="@+id/cvCampos2" layout="@layout/ctlcabeceralibreta2" /> <android.support.v7.widget.RecyclerView android:id="@+id/rvRegistros" android:layout_width="fill_parent" android:layout_height="1000dp" android:layout_below="@id/cvCampos2" android:scrollbars="vertical" /> </RelativeLayout> </ScrollView> 

Este es el screenshoot:

Introduzca aquí la descripción de la imagen

En el caso anterior, lo que debe hacer es utilizar varios ViewHolders en la misma vista de recyclerview .

Veo que usted tiene tres tipos de diseños allí. Las dos primeras tarjetas y otros diseños en su recyclerview .

RecyclerView con varios tipos de vista le da un ejemplo de cómo utilizar múltiples tipos de vista en una simple reciclarvista.

Poner una altura fija funciona! Pero necesito calcular la altura del número de artículos en la lista

Esto funciona para listviews (no lo he probado con recyclerview)

 public static void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { // pre-condition return; } int totalHeight = listView.getPaddingTop() + listView.getPaddingBottom(); for (int i = 0; i < listAdapter.getCount(); i++) { View listItem = listAdapter.getView(i, null, listView); if (listItem instanceof ViewGroup) { listItem.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); } listItem.measure(0, 0); totalHeight += listItem.getMeasuredHeight(); } ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); listView.setLayoutParams(params); } 

Src:

Ejemplo completo

  • RecyclerView no se desplaza hacia abajo
  • Android java onClick No se pudo ejecutar el método de la actividad
  • Cómo obligar a RecyclerView a desplazarse cuando no hay suficientes elementos para llenar la altura de la sceen
  • ¿Cómo puedo hacer que WRAP_CONTENT funcione en un RecyclerView
  • Cómo permanecer en una posición de desplazamiento en RecyclerView después de añadir elementos en su primer índice y llamar a notificydatasetchange
  • Tipos incompatibles: no se puede emitir el visor a imageviewholder
  • StaggeredGridLayoutManager y elementos en movimiento
  • Personalizar RecyclerView LayoutManager no fling (sin problemas)
  • Fragmento con RecyclerView: java.lang.IllegalArgumentException: Las vistas desechadas o adjuntas no se pueden reciclar. IsScrap: false isAttached: true
  • Android: Desplazamiento de problemas con recyclerview dentro de un viewpager
  • RecyclerView encabezado y pie de página
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.