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 .
- ¿Debo cambiar el Listview existente en mi aplicación a RecyclerView?
- Deshabilitar haga clic en RecyclerView dentro de un SwipeRefreshLayout
- ¿Cómo usar ButterKnife OnItemClick con RecyclerView?
- FirebaseRecyclerAdapter y multiplicar tipos de elementos en android
- Combinar múltiples RecyclerView.Adapter para usar con RecyclerView único (Android)
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:
- RecyclerView onItemClick Listener
- Retos en RecyclerView de Android L
- Obtener el ancho de CardView en Adapter.onBindViewHolder
- Mostrar un RecyclerView en Fragmento
- Haga doble clic en OnClickListener de un adaptador de vista de reciclador
- Obtener encabezados de sección para trabajar con SuperSLiM y RecyclerView
- ¿Cómo añadir una vista de pie de página en RECYCLER VIEW?
- Recycler view Array index otof bound Incossitency Error mientras SwipetoRefresh y reciclador desplazándose al mismo tiempo
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
- Retrofit: agrega un parámetro de lista de cadenas a la solicitud de múltiples partes
- GCM 3.0 – gcm no muestra automáticamente la notificación con el parámetro de notificación