dunkle Aktionsleiste mit Theme.AppCompat

8

Ich verwende Theme.AppCompat für meine App, um das dunkle Aussehen zu erhalten. Alles sieht gut aus, außer dass die Aktionsleiste, die dieses Thema verwendet, alt aussieht, d. H. Es hat einen hellblauen Bodenteiler.

Ich möchte, dass die Aktionsleiste wie in Theme.AppCompat.Light.DarkActionBar aussieht.

Betrachten Sie themes.xml , d finden:

%Vor%

Also erstelle ich meinen eigenen Stil wie folgt:

%Vor%

Aber ich bekomme den Build-Fehler:

%Vor%

Warum kann ich nicht das gleiche Zeichenfeld verwenden, das vom Framework verwendet wird?

    
faizal 11.07.2014, 10:15
quelle

1 Antwort

1

Die blaue Linie ist Teil des Hintergrundbildes, das für die Aktionsleiste verwendet wird. Zum Beispiel finden Sie es in: sdk/platforms/android-19/data/res/drawable-xxhdpi/ab_transparent_dark_holo.9.png

Der Trick besteht darin, einen eigenen Widget-Stil zu erstellen, indem Sie Widget.AppCompat.ActionBar erben und das Hintergrund-Attribut mit Ihrem gewünschten png, das nicht die blaue Linie hat, festlegen. Ich benutze das vorhandene @drawable/abc_ab_bottom_transparent_dark_holo der Support-Bibliothek. Sie finden es im Ordner sdk/extras/android/support/v7/appcompat/res/drawable-hdpi/ .

Erstellen Sie das untere Element in der Datei styles.xml.

%Vor%

Fügen Sie diesen neu erstellten Stil dann in Ihr Design ein (bereits in der Datei styles.xml vorhanden):

%Vor%

Um diese Änderung in älteren APIs zu aktivieren, nehmen Sie dieselben Änderungen in allen 3 Ordnern vor - values-v14 , values-v12 und values . Eine wichtige Sache zu beachten ist, dass der Namespace "android:" nicht für die Namensattribute in den Ordnern values-v12 und values verwendet werden sollte.

    
faizal 11.07.2014, 14:35
quelle