web-dev-qa-db-de.com

Android 4.4 durchscheinender Status und Navigationsleistenstil auf Android 5.0

In Android 4.4 KitKat können Sie die Status- und Navigationsleisten mit den Themenelementen Android:windowTranslucentStatus Und Android:windowTranslucentNavigation Transparent einstellen. Unterhalb der Leisten wird das App-Fenster erweitert und ein Farbverlauf wird hinzugefügt. Allerdings wurde bei Android 5.0 Lollipop dies geändert und jetzt wird anstelle des Farbverlaufs eine durchgehende transparente Farbe hinzugefügt. Android 5.0 bietet die neue Android:statusBarColor und Android:navigationBarColor Elemente unter dem neuen Material-Thema, aber wenn Sie versuchen, diese Elemente auf @Android:color/transparent zu setzen, wird das App-Fenster nicht erweitert, und wenn Sie Android:windowTranslucentStatus Und Android:windowTranslucentNavigation, Dann werden Android:statusBarColor Und Android:navigationBarColor Ignoriert.

Vermisse ich etwas, das unter http://developer.Android.com/training/material/theme.html#StatusBar beschrieben wurde?

enter image description here

37
AxeEffect

Einstellen Android:windowTranslucentStatus to false und set Android:statusBarColor bis @Android:color/transparent.

Dann fügen Sie unten Code hinzu:

getWindow().getDecorView().setSystemUiVisibility(
        View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);

Wenn die Navigationsleiste auch durchsichtig sein soll, setzen Sie Android:navigationBarColor bis @Android:color/transparent und kombiniere die Flagge View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION auch.

Ich habe nicht mit der Navigationsleiste experimentiert, aber es wird funktionieren.

64
suckgamony

Füge die folgende Zeile zu deinem Stil hinzu:

<item name="Android:windowTranslucentStatus">true</item>
<item name="Android:windowTranslucentNavigation">true</item>
7
Kuldeep Sakhiya

Zur Verdeutlichung @ suckgamonys Antwort auf diese Frage:

  • Unter Lollipop und darüber Einstellen von Android:statusBarColor oder Android:navigationBarColor bis @Android:color/transparent macht die Statusleiste bzw. Navigationsleiste vollständig transparent, es sei denn:
  • Android:windowTranslucentStatus oder Android:windowTranslucentNavigation ist auf true gesetzt. In diesem Fall wird die Statusleiste oder Navigationsleiste (bzw.) wird auf die durchgehende transparente Farbe @AxeEffect Beschrieben (wiederum unter Lollipop und darüber) gesetzt;
  • Android:statusBarColor und Android:navigationBarColor darf nur mit Android Version 21 (Lollipop 5.0) oder höher verwendet werden. Wie in die bezeichnete Antwort , Android:windowTranslucentStatus oder Android:windowTranslucentNavigation Wenn Sie KitKat verwenden, erhalten Sie transparente Verläufe und keine vollständige Transparenz.
3
CODE-REaD