Existe-t-il un moyen d'ajouter une élévation à un View
dans des périphériques antérieurs à Lollipop sans les envelopper dans un CardView
?
ViewCompat.setElevation(View, int)
ne crée actuellement aucune cale.
Le seul moyen de simuler l'altitude consiste à appliquer une ombre antérieure à la v21. Définissez votre style/mise en page/dessinable dans values
et remplacez-le dans values-v21
. Pour les boutons, j'utilise des remplacements de style. Pour les mises en page, je choisis généralement le remplacement de la référence (utilisez @null
se débarrasser d'un drawable).
Espérons qu'à l'avenir, une mise à jour de la bibliothèque de support ajoutera des shims.
Ce fil reddit garde trace de cette mise à jour.
La nouvelle bibliothèque de conception de support crée effectivement des correctifs pour le bouton d'action flottante.
Voici un exemple comment ajouter une ombre au-dessous de Toolbar
sur des périphériques antérieurs à Lollipop:
La mise en page devrait être ceci:
<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>
Et l'ombre est:
<?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>
J'obtiens le même effet en utilisant,
Android:background="@Android:drawable/dialog_holo_light_frame"
Ma sortie testée:
référence - https://stackoverflow.com/a/25683148/3879847
Mise à jour: Si vous voulez changer la couleur de cet dessin, essayez @Irfan answer