Android CardView no funciona en Api 21
Estoy utilizando android CardView
y funciona perfectamente por debajo de Api 21. Pero cuando lo uso en Api 21 es decir Lollipop los atributos xml como cardElevation
, cornerRadius
no funciona. ¿Qué estoy haciendo mal?
Este es mi diseño XML:
- Efecto de ondulación en la parte superior de la imagen - Android
- Desactivar la hamburguesa para animar la flecha hacia atrás en la barra de herramientas
- ¿Es válida la guía de diseño de iconografía Android para Android 5 / Diseño de material
- Error al inflar el fragmento de clase InflateException Archivo XML binario
- Configuración del relleno de la barra de estado en NavigationView en Android
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <!-- A CardView that contains a TextView --> <android.support.v7.widget.CardView android:id="@+id/card_view" android:layout_gravity="center" android:layout_width="match_parent" android:layout_height="match_parent" card_view:cardElevation="2dp" card_view:cardBackgroundColor="@color/white" card_view:cardCornerRadius="4dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingTop="6dp" android:paddingBottom="8dp" android:paddingLeft="8dp" android:paddingRight="8dp" android:background="@color/white" android:layout_gravity="center_vertical" android:gravity="center_vertical" android:layout_alignBottom="@+id/live_image"> <TextView android:id="@+id/title_update" android:text="@string/msg_error" android:layout_width="match_parent" android:singleLine="true" android:ellipsize="end" android:textSize="18sp" android:background="@color/white" android:textColor="@color/black" android:layout_height="wrap_content" /> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <TextView android:id="@+id/textView_time" android:layout_width="0dp" android:layout_height="wrap_content" android:text="@string/msg_error" android:layout_weight="0.75" android:singleLine="true" android:ellipsize="end" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="@color/black_translucent" /> <TextView android:id="@+id/textViewAlarm" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="0.25" android:visibility="gone" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="@color/black" android:textStyle="italic" /> </LinearLayout> </LinearLayout> </android.support.v7.widget.CardView> </LinearLayout>
- ¿Cómo mostrar un cuadro de diálogo en Android con el efecto revelador del diseño de material?
- ¿Cómo puedo utilizar EditText en lugar de TextView y abrir la fechaPicker en un solo clic?
- Animar la vista de redimensionamiento en el diseño del material
- Cajón de navegación con borde curvo en Android
- Crear Revelación Circular para Dispositivos Pre-Lollipop
- Compatibilidad con versiones anteriores del diseño del material: colorAccent requiere el nivel 21 de API cuando se utiliza appcompat7
- Cómo animar barras de herramientas superior e inferior (o cualquier otra vista) entrar / salir de la pantalla en desplazamiento en CoordinatorLayout?
- ¿Cómo puedo abrir mediante programación (mostrar en pantalla) NavigationView
Yo tenía exactamente el mismo problema con CardView
. Ajustar compatPadding
a true
corrigió el problema.
En tu diseño intenta agregar la siguiente línea a tu CardView
card_view:cardUseCompatPadding="true"
O si está inicializando en código, utilice
cardView.setUseCompatPadding(true);
Me encontré con el mismo comportamiento. Creo que la sombra se dibuja fuera del contenido. Por lo que necesita espacio entre el contenido de la vista y su frontera. Lo arreglé de la siguiente manera:
Añade márgenes a tu CardView
<android.support.v7.widget.CardView android:id="@+id/card_view" android:layout_margin="15dp" ... > ... </android.support.v7.widget.CardView>