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.
- El teclado suave no activa el desplazamiento en un ScrollView
- Coloque un bloque en el centro de un ScrollView
- React Native: TouchableOpacity onPresiona problemas dentro de un ScrollView
- Cómo agregar scrollview a keyboardView en android
- Reciclando vistas en vista de desplazamiento
Imagen 1. Desplácese hasta abajo no puede ver el borde
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
- Android - LinearLayout en ScrollView en Relativelayout
- Android, Horizontal y Vertical Scroll para GridLayout
- No se puede obtener ScrollView para desplazarse cuando se muestra el teclado virtual
- Quitar la barra de desplazamiento de ScrollView mediante programación en Android
- Cómo configurar el color de un borde de desvanecimiento Android ScrollView?
- Android ScrollView no se desplaza cuando el teclado está hacia arriba
- ¿Cómo sé que la vista de desplazamiento ya está desplazada hacia abajo?
- Android ScrollView y los botones en la parte inferior de la pantalla
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.
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.
- Menú en la barra del sistema de Android 3.0
- ¿Cuál es la diferencia exacta entre onAttachedToWindow y onStart