Transluzente Statusleiste mit dynamischer ActionBar-Farbe in Android

8

Ich versuche eine durchsichtige Statusleiste zu erstellen (so dass meine Navigationsansicht HINTER der Statusleiste ist), aber ich möchte die Farbe meiner Aktionsleiste immer noch dynamisch ändern. Aus diesem Grund muss die Farbe der Statusleiste zu einer dunkleren Version meiner Aktionsleistenfarbe geändert werden.

Wenn ich meine Statusleiste transparent mache, wie viele Quellen meinen, wird meine Farbe primary_dark als Hintergrund für meine Statusleiste verwendet. Da ich jedoch die Farbe der Aktionsleiste zur Laufzeit ändern werde, muss primary_dark nicht unbedingt die dunkle Farbe meiner Aktionsleiste sein.

Wenn ich meine Statusleiste auf die Farbe der Aktionsleiste setze, ist die Transparenz verschwunden. Wenn ich meine Statusleiste auf die Farbe der Aktionsleiste setze und Transparenz hinzufüge, sieht die Statusleiste weder falsch noch richtig aus und meine überlappende Navigationsansicht ist immer noch nicht sehr "transparent" / "bunt".

Google Inbox hat drei separate Farben: Inbox (blau), Snoozed (gelb) und Done (grün).

Was kann ich tun, um dieses Verhalten zu erreichen?

    
Frame91 18.12.2015, 08:28
quelle

1 Antwort

10

Eigentlich ist es ziemlich einfach zu implementieren.

Erster Schritt - ist die Höhe von Toolbar zu ändern:

  • ändere height in wrap_content

so sieht es für mich so aus:

%Vor%

Dann überschreiben Sie Ressourcen für v19 :

%Vor%

Setzen Sie dann in Activity padding für Toolbar :

%Vor%

Und eigentlich ist es so ziemlich alles. Jetzt, wenn ich die Farbe der Toolbar ändern möchte, rufe ich folgendes an:

%Vor%

Das Layout der Aktivität:

%Vor%

Achtung! In den Pre-Kitkat OS-Versionen blieb die Statusleiste gleich, nicht transparent.

Ich habe den Quellcode der Testanwendung in meine Dropbox hochgeladen - fühlen Sie sich frei schau es dir an .

Ich hoffe, es hilft

    
Konstantin Loginov 20.12.2015, 19:32
quelle