2017-10-31 5 views
0

Ich habe die härteste Zeit, die Farbe unter der transparenten Farbe der Statusleiste zu ändern. Die Transparenz ist in Ordnung, wenn die Schublade geöffnet ist, aber die Farbe darunter ist falsch. Verschiedene Fragmente werden unterschiedliche Aktionsleistenfarben haben.Farbe unter der Statusleiste bei der Verwendung von Drawer Layout

fitsSystemWindow hat keine Wirkung. Ändern der Statusleiste Farbe macht es nur solide. Wenn ich eine Farbe mit einem niedrigeren Alpha einstelle, mischt sie sich nur mit Grün (Primärfarbe dunkel).

Beispiel unten, was passiert und was ich will.

Was passiert: Farbe darunter ist grün.

enter image description here

enter image description here

Was ich will, ist wie das, was im Play Store passiert:

enter image description here

enter image description here

+0

Ich habe eine schwere Zeit, Ihre Frage zu verstehen, wann immer Benutzer Fragment ändert, können Sie Aktivität sagen, die Statusleiste Farbe entsprechend zu ändern? – Max

+0

@Max Also ja auf Fragment ändern kann ich tun. - getWindow(). SetStatusBarColor (Farbe); Aber das macht es eine feste Farbe, und ich verliere den transparenten Effekt, wenn die Schublade öffnet –

+0

Ich habe ein weiteres Bild hinzugefügt, um hoffentlich zu helfen. Aber mein erstes Fragment ist grün, also funktioniert das Grün unter dem Transparent gut. Aber wenn ich Fragmente mit einer anderen Farbe ändere, ist die darunter liegende Farbe immer noch grün. –

Antwort

1

Gut, das versuchen:

Zuerst stellen Sie sicher, dass Ihr App Thema in v21/style.xml hat

<item name="android:windowTranslucentStatus">true</item>

Dann stellen Sie sicher, mDrawerLayout.setStatusBarBackgroundColor() stattdessen zum Ändern der Hintergrundfarbe von statusBar auf Fragment Änderung verwenden.

und stellen Sie sicher, dass Ihre coordinatorLayout nicht Eigenschaft enthält android:fitsSystemWindows

nach diesen Schritten ich Sie das Problem behoben bekommen hoffen, lassen Sie mich in den Kommentaren wissen

Dank

+0

Danke, knospe, yeah hat gerade gemerkt, dass da schon Int gebaut ist. Ich habe nur setStatusBarColor() verwendet. Einer jener Tage, wo ich so viel Zeit verschwendete ... Danke –

+0

lol ich erkannte es nur mit dem anderen, wenn Sie es in Kommentaren erwähnt :) – Max

+0

Wenn die Antwort Ihr Problem gelöst, stellen Sie bitte sicher, es als akzeptiert zu markieren damit der andere Benutzer weiß, dass diese Antwort funktioniert – Max

0

Set setStatusBarBackgroundColor()

Verwandte Themen