El borde inferior de CardView se corta dentro de ScrollView android

Estoy poniendo el cardview dentro de scrollview, esperamos ver que en la parte inferior, el borde debe ser mostrado (ver foto más abajo). Pero no lo es. El problema es que no puedo desplazarme a la parte inferior para ver el borde de cardview.

Todas las soluciones en SO es cambiar layout_margins a paddings, pero no es el caso de cardview si queremos mostrar el borde. Básicamente lo intenté todo. Pero aún no funciona. Desplazarse hacia abajo no puede ver el borde

Imagen 1. Desplácese hasta abajo no puede ver el borde

Podemos ver el borde superior

Imagen 2. Podemos ver el borde superior

A continuación se muestra el código xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:custom="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" android:fillViewport="true"> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="8dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > ... </LinearLayout> </CardView> </LinearLayout> 

Referencias: ScrollView no se desplaza al fondo

ScrollView corta la parte superior y deja espacio en la parte inferior

No puedo mostrar LinearLayout en la parte inferior para desplazarse por la vista

Android ScrollView se niega a desplazarse hasta la parte inferior

Me encontré con el mismo problema y tenía que hacer lo siguiente (la clave es el envoltorio LinearLayout alrededor del cardview donde he añadido el paddingBottom ):

 <ScrollView android:id="@+id/item_scrollview" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="none" tools:visibility="visible"> <LinearLayout android:id="@+id/item_wrapper_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="@dimen/content_margin" android:paddingBottom="32dp" android:orientation="vertical"> <android.support.v7.widget.CardView android:id="@+id/item_cardview" android:layout_width="match_parent" android:layout_height="wrap_content" card_view:cardBackgroundColor="@color/colorPrimary" card_view:cardCornerRadius="4dp" card_view:cardUseCompatPadding="true"> 

La adición de la envoltura LinearLayout alrededor del cardview es lo que funcionó para mí.

También tenga en cuenta, tuve que añadir card_view: cardUseCompatPadding = "true" en el cardview para obtener la sombra de frontera que parece correcta.

Aquí está el resultado final donde el recuadro rojo muestra dónde se ha añadido el relleno cuando la vista de tarjeta se expande y se desplaza hacia arriba.

captura de pantalla

Una solución que acabo de encontrar es envolver CardView con un LinearLayout o RelativeLayout y establecer su relleno. Por ejemplo, si desea algún efecto de sombra en cardView, digamos 8dp, puede establecer 4dp relleno de su LinearLayout o RelativeLayout y 4dp layout_margin de CardView.

  • No se puede cambiar el tamaño de RelativeLayout dentro de ScrollView para llenar toda la pantalla
  • Cómo agregar dos listview en scrollview
  • Cómo configurar una vista para no desplazarse con scrollview en Java
  • Sin gravedad para scrollview. Cómo hacer que el contenido dentro de scrollview como centro
  • Android WebView dentro de ScrollView solo desplaza scrollview
  • Horizontal RecyclerView interior vertical ScrollView
  • Diseño de pantalla completa en Vista de desplazamiento
  • Modo Android Landscape cortando mis botones en la parte superior
  • Problema con webview y scrollview
  • Cómo mostrar siempre la barra de desplazamiento
  • Desplazar una vista / disposición oculta desde abajo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.