tutorial - material design android pdf
AplicaciĆ³n de Android Compat 21 Elevation (4)
¿Hay alguna forma de agregar elevación a una
View
en dispositivos pre-lollipop sin envolverlos en un
CardView
?
Ahora puede usar el esquema
xmlns:app="http://schemas.android.com/apk/res-auto"
y
app:elevation
<?xml version="1.0" encoding="utf-8"?>
<layout 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">
...
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
app:elevation="5dp">
Este es un ejemplo de cómo agregar una sombra debajo de la
Toolbar
de
Toolbar
en dispositivos pre-lollipop:
El diseño debe ser este:
<RelativeLayout
android:id="@+id/toolbar_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true" >
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:animateLayoutChanges="true"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar" />
<View
android:id="@+id/toolbar_shadow"
android:layout_width="match_parent"
android:layout_height="@dimen/toolbar_shadow"
android:layout_below="@id/toolbar"
android:background="@drawable/toolbar_dropshadow" />
</RelativeLayout>
Y la sombra es:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
android:angle="90"
android:endColor="#88444444"
android:startColor="@android:color/transparent" />
</shape>
Logro el mismo efecto usando,
android:background="@android:drawable/dialog_holo_light_frame"
Mi resultado probado:
referencia - https://.com/a/25683148/3879847
Actualización: si quieres cambiar el color de este dibujable, prueba @Irfan answer
https://.com/a/40815944/3879847
ViewCompat.setElevation(View, int)
actualmente no crea cuñas.
La única forma de simular la elevación en este momento es aplicar una sombra anterior a v21.
Defina su estilo / diseño / dibujo en
values
y
values-v21
en
values-v21
.
Para los botones, uso anulaciones de estilo.
Para los diseños, generalmente uso la anulación de referencia (uso
@null
para deshacerme de un dibujo).
Con suerte, en el futuro, una actualización de la biblioteca de soporte agregará cuñas.
Este hilo de reddit realiza un seguimiento de dicha actualización.
Editar
La nueva biblioteca de diseño de soporte en realidad crea cuñas para el botón de acción flotante.