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?
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.
Tags und Links android android-theme android-source