RecyclerView está cortando el último elemento

Tengo un fragmento con una barra de herramientas y un recyclerView dentro de él.

Estoy poblando el recyclerView con datos falsos y luego tratar de mostrarlos. Por alguna razón, el último elemento del recicladorVista está recibiendo corte.

Este es el XML del fragmento:

<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/background_1" android:fitsSystemWindows="true"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar_layout" android:layout_width="match_parent" android:layout_height="@dimen/height_of_app_bar" android:fitsSystemWindows="true" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:contentScrim="@color/primary" app:expandedTitleMarginEnd="64dp" app:expandedTitleMarginStart="48dp" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <ImageView android:id="@+id/backdrop" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:scaleType="centerCrop" android:src="@drawable/placeholder_rect_header" app:layout_collapseMode="parallax"/> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v7.widget.RecyclerView android:id="@+id/simpleList" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"/> </android.support.design.widget.CoordinatorLayout> 

Los elementos de la lista son realmente simples:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="200dp" android:background="@color/background_1" android:orientation="horizontal" android:padding="@dimen/space_for_a_bit_of_air"> <ImageView android:id="@+id/album_cover" android:layout_width="100dp" android:layout_height="100dp" android:layout_gravity="center_vertical" android:scaleType="fitXY" android:src="@drawable/placeholder_album_cover"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="@dimen/space_for_distinguishing_stuff" android:orientation="vertical"> <TextView android:id="@+id/album_title" style="@style/titleText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/sample_text_c"/> <TextView android:id="@+id/album_year" style="@style/subtitleText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/sample_text_a"/> </LinearLayout> </LinearLayout> 

Ahora estoy al final de la lista, pero el último elemento todavía parece cortado

Ahora estoy al final de la lista, pero el último elemento todavía parece cortado.

Estoy utilizando la última versión a partir de 2015-09-23 de google libraries, 23.0.1, (es decir, com.android.support:recyclerview-v7:23.0.1), y la siguiente configuración en el build.gradle:

 compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { minSdkVersion 14 targetSdkVersion 23 versionCode 1 versionName "1.0" multiDexEnabled true// Enabling multidex support } 

Cualquier ayuda sería muy apreciada ya que estoy volviendo loco con este problema 🙁

SOLUCIÓN

Ok, después de limpiar el código a los elementos esenciales y eliminar la complejidad, encontré el problema: era una combinación de banderas erróneas y falta o atributos adicionales. Lo siguiente funciona bien para Android 4.x y 5.x:

 <?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout 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:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/background_1" android:fitsSystemWindows="true"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar_layout" android:layout_width="match_parent" android:layout_height="@dimen/height_of_app_bar" android:fitsSystemWindows="true"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:collapsedTitleTextAppearance="@style/Title.collapsed" app:contentScrim="@color/primary" app:expandedTitleMarginStart="48dp" app:expandedTitleTextAppearance="@style/Title.Expanded" app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed"> <ImageView android:id="@+id/backdrop" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:scaleType="centerCrop" android:src="@drawable/artistic_4" app:layout_collapseMode="parallax"/> <View android:layout_width="match_parent" android:layout_height="@dimen/height_of_app_bar" android:background="@drawable/gradient"/> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin"/> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v7.widget.RecyclerView android:id="@+id/simpleList" style="@style/genericRecyclerView" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:listitem="@layout/item_discography_album"/> </android.support.design.widget.CoordinatorLayout> 

En pocas palabras, android: fitsSystemWindows = "true" sólo debe estar en el coordinatorLayout, AppBarLayout y theCollapsingToolbarLayout (que son los que queremos que se ajusten en base a la pantalla de Android 5.x), la aplicación: layout_scrollFlags debe ser establecido A "scroll | enterAlways | enterAlwaysCollapsed" y la barra de herramientas debe tener como altura, la altura de la barra de acción. Por último, es mejor mantener el RecyclerView tan limpio como sea posible para que pueda controlar el espaciado de diseño en cada elemento de línea.

Trate de cambiar la altura de RecyclerView a "wrap_content" y agregue la altura de AppBarLayout como fondo de margen.

 <android.support.v7.widget.RecyclerView android:id="@+id/simpleList" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/height_of_app_bar" app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

La parte de corte del elemento de lista, es la altura de AppBarLayout .

Add android: layout_gravity = "arriba" a la vista del reciclador. Si esto no funcionaba, agregue android: layout_gravity = "fill_verticle"

Crear un FrameLayout poner el RecycerView en él que tiene match_parent para el ancho y la altura. Puede dimensionar el diseño del marco como desee.

Dé un margen desde el fondo a su vista Recicladora

  <android.support.v7.widget.RecyclerView android:id="@+id/simpleList" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginBottom="20dp" app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 
  • Deslizar hacia abajo para actualizar el diseño del material
  • Detener el desplazamiento del usuario para establecer la posición en RecyclerView
  • GetAdapterPosition () no es un método
  • Arrastrar y soltar elementos en RecyclerView con GridLayoutManager
  • Horizontal RecyclerView interior vertical ScrollView
  • Transición de actividad de elementos compartidos en android 5
  • Android Recyclerview GridLayoutManager espaciamiento de columnas
  • Barra de herramientas dejando espacio en blanco con ocultar en RecyclerView scroll
  • RecyclerView 23.2.x height = 0dp hace que onBind llame a todos los elementos y scrollToPosition no funciona
  • v7 RecyclerView NullPointerException AccessibilityDelegateCompat.getBridge ()
  • RecyclerView: obtenga todas las vistas / presentaciones existentes
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.