Lorsque vous utilisez un AppBarLayout
widget dans la bibliothèque de support de conception, une ombre apparaît en bas de la barre d'outils. Comment puis-je supprimer cette ombre?
android
android-layout
Abdul Rehman
la source
la source
setOutlineProvider
ce problème ne se produit que lorsque la version de l'API> = 21, si vous ne souhaitez pas modifier l'élévation, vous pouvez utiliser:
n'oubliez pas de vérifier la version de l'API
ÉDITER :
Blow est le code source de
setOutlineProvider
.Il est dit que
If the ViewOutlineProvider is null, if querying it for an outline returns false, or if the produced Outline is {@link Outline#isEmpty()}, shadows will not be cast.
Donc, si vous souhaitez supprimer l'ombre, vous feriez mieux d'utiliser cette méthode au lieu de définir
app:elevation
. Il semble que changer l'élévation pour supprimer l'ombre soit une sorte d'effet secondaire. Et la modification de l'élévation peut entraîner d'autres problèmes dans certains cas.la source
Pour tous ceux qui ne veulent pas utiliser
bringToFront()
etelevation="0dp"
fait disparaître la barre d'outils:app:elevation="0dp"
combinded avecandroid:translationZ="0.1dp"
travaillé pour moi.la source
Avec les dernières versions appcompat, le paramètre d'astuce
app:elevation="0.1dp"
en xml ne fonctionne plus.Jusqu'à présent, j'ai trouvé deux solutions.
Au lieu de définir
app:elevation
, essayez d'utiliser un stateListAnimator. Par exemple, dans le code:Un moyen plus simple est de toujours définir
app:elevation="0dp"
en xml comme d'habitude, mais en code:Le mérite revient à ces deux discussions:
ToolBar disparaît lors de la définition de l'élévation pour AppBarLayout
lorsque l'application est définie: elevation = "0dp", le menu hamburg ne s'affiche pas dans la barre d'outils
la source
Utilisez
android:stateListAnimator="@null"
. Aucun effet secondaire.la source
J'ai essayé
app:elevation="0dp"
mais la barre d'outils disparaît, mais l'utilisation aapp:elevation="0.1dp"
fait l'affaire.J'espère que cela aide quelqu'un d'autre.
la source
v25.0.0
.Ajoutez app: elevation = "0dp" sur votre AppBarLayout. comme cet exemple
la source
Par programme, vous pouvez utiliser ceci: getSupportActionBar (). SetElevation (0.0f);
la source
C'est la façon dont j'ai proposé
app:elevation="0dp"
de supprimer l'ombre. Fonctionne parfaitement.la source