Transparent barre d'état de ne pas travailler avec windowTranslucentNavigation=“false”
Je suis en train d'élaborer un Activity
où j'ai besoin de faire la barre de navigation opaque, et la barre d'état transparente sur les appareils exécutant 5.0+ API (21+). Les styles que j'utilise sont ci-dessous, avec une explication de mon problème.
AppTheme
s'étend Theme.AppCompat.Light.NoActionBar
<item name="android:statusBarColor">@color/transparent</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@color/welbe_red_transparent</item>
FullscreenTheme
s'étend AppTheme
<item name="android:windowNoTitle">true</item>
<item name="android:statusBarColor">@color/transparent</item>
<item name="android:windowTranslucentNavigation">true</item>
Cela rend l'application ressembler à ceci
Si je supprime le android:windowTranslucentNavigation
style, ou false
dans Fullscreen
, elle fixe la barre de navigation de problème. Le problème est que la barre d'état devient complètement blanc au lieu de rester transparent et en affichant le contenu derrière elle.
J'ai essayé d'utiliser fitsSystemWindow="true"
dans ma présentation, mais il n'a pas de résoudre le problème. Quelqu'un sait pourquoi ce qui se passe?
- Je suis un peu confus quant à ce que vous voulez vraiment: barre de navigation par défaut, transparent barre d'état et votre arrière-plan de la barre d'état. - Il Correct?
- Oui, c'est exactement ce que je veux afficher. L'arrière-plan s'arrête s'étendant derrière la barre d'état lorsque je désactive
android:windowTranslucentNavigation
.
Vous devez vous connecter pour publier un commentaire.
android:windowTranslucentNavigation
fait une chose queandroid:statusBarColor
ne pas le faire, ce qui est la demande de l'SYSTEM_UI_FLAG_LAYOUT_STABLE
etSYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
drapeaux.Ce sont ceux que vous avez besoin à la demande, dans le but de tirer derrière la barre d'état.
La demande dans le
onCreate
de votreActivity
:Sinon, vous pouvez aussi simplement l'ensemble de vos applications à l'arrière-plan du thème et qui sera également pop derrière votre barre d'état.
Plus d'informations ici.
fitsSystemWindows
pour que cela fonctionne correctement.Autant que je sache, il n'y a pas de bonne façon de définir la couleur de la barre d'état sur les Api de plus bas que 19.
Pour API 19+, vous pouvez utiliser un attribut de
windowTranslucentNavigation
seulement pour la barre d'état:Notes:
La raison vous avez été d'obtenir un blanc de la barre de statut est à cause de
Il y a certains hacks qui travaillent sur des cas spécifiques de fabricant de périphériques, mais je ne voudrais pas l'utiliser moi-même.
19+
et21+
. Le fond doit être sous la transparence de la barre d'état sur21+
, mais la combinaison de paramètres, je suis en utilisant avec AppCompat est la rupture de cette fonction quelque part. Cette réponse n'est pas réellement répondre à la question.android:windowTranslucentNavigation
arrêter l'arrière-plan de montage de la fenêtre système entièrement (la raison pour laquelle la barre d'état est blanc). Je n'ai pas besoin de la transparence de travailler sur 14+ (je sais que c'est pas possible), je viens de remarquer que la solution a besoin d'utiliserAppCompat
thèmes/styles pour maintenir la compatibilité ascendante.windowTranslucentStatus
), la barre d'état translucide et le contenu est tiré derrière elle. Au moins lors de l'exécution sur l'API 21.android:windowTranslucentStatus
est un KitKat attribut, pas AppCompat (je l'utilise dans mon19+
thème). Il rend la barre d'état semi-translucide avec un dégradé de l'arrière-plan de protection. Le nouveau Matériau thème attributs de vous permettre d'avoir un complètement transparent barre d'état. Je m'excuse si ce n'était pas clair dans ma question. J'ai édité pour s'assurer que les gens savent que je suis en train de parler de ce travail sur un 21+ Thème Matériau, qui se trouve être AppCompat dans mon cas.J'ai du mal avec cette pendant plus de 3 heures. Envelopper le tout dans une CoordinatorLayout il est le seul qui semble prêter attention à la fitsSystemWindow="true" ou "false"
C'est mon activité principale fragment
c'est ma barre d'outils de mise en page
comme vous pouvez le voir, mon fragment de mise en page permet de la carte de google, être établi en vertu de la barre d'état.
J'ai une barre d'action où le logo de l'entreprise va.
Et autres boutons d'interface "layout_action_buttons" aussi enveloppé dans un Coordonnateur de la mise en page , de sorte que le fitsSystemsWindows œuvres.
Vérifier.