Android Lollipop Material Design Overflow-Menü-Symbol-Farbe
Ich versuche das neue Material Design auf einem Nexus 7 und habe Folgendes seltsames Verhalten. Das Overflow-Menü-Symbol hat eine andere Farbe auf dem ersten app-Start.
Änderte ich die android:textColorPrimary
Farbe und Lesen Sie dieses tutorial.
-
Ersten App-Start:
-
Zweiten App-Start:
Als Sie sehen, die Farbe der primäre Textfarbe ist nicht auf den ersten Start. Es wird nur festgelegt, wenn ich drücken Sie die home-Taste und die app neu starten. Hier ist mein styles.xml
Datei:
<style name="AppBaseTheme" parent="android:Theme.Material.Light">
<item name="android:colorPrimary">#FF4444</item>
<item name="android:colorPrimaryDark">#CC0000</item>
<item name="android:textColorPrimary">#000000</item>
</style>
Kann jemand erklären, warum das Verhalten Auftritt?
Ich android:minSdkVersion="21"
und will nicht von support-Bibliotheken.
- Nur mit Licht.DarkActionBar anstelle von Licht. Es behandelt die änderung der Thema, gegen das die action bar Inhalte ist aufgeblasen und sparen Sie eine Menge unnötige Arbeit.
- Hey @alanv, ich versuchte Ihren Vorschlag, es macht die Farbe für den text der beiden "Demo-Material" und den Punkten Recht weiß geworden. Wie, um Sie alle zu dunkel?
- Oh, habe ich verpasst, dass du versuchst, um Sie alle zu dunkel. Nur mit dem Thema Licht sollte schon erreichen. Sind Sie mit appcompat oder ändern etwas anderes in dem Thema?
- Das ist nur ein workaround für schwarzen oder weißen text Farben. Wenn ich eine andere Farbe das problem besteht immer noch. Ich würde gerne wissen, wie das zu reparieren.
- bitte posten Sie das layout der Symbolleiste code
- Was meinst du mit Symbolleiste layout code?
- Sie müssen eine
toolbar
view
(wo das Thema, das Sie zeigte, angewendet wird), wird es normalerweise ein layout, aber dieview
code ist genug - Sind Sie mit appcompat?
- Bitte, Lesen Sie diese: chris.Dämonen.mir/2014/10/17/appcompat-v21. Sie benötigen appcompat-v7 lib. Ich würde Ihnen empfehlen die Verwendung von android studio + gradle und fügen Sie "compile 'com.android.support:appcompat-v7:21.0.0'", um Ihre Abhängigkeiten. Dann Folgen Sie einfach dem chris Dämonen Schritte. Sie müssen eine Symbolleiste.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erlebte ich das gleiche problem beim Betrieb eines
PreferenceActivity
die nicht verwenden appcompat-v7-Bibliothek auf einemLOLLIPOP
Gerät. Wenn diese Aktivität ist zum ersten mal eröffnet das überlauf-Symbol ist immer weiß, völlig ignoriertandroid:textColorPrimary
undandroid:colorControlNormal
. Die anschließende läuft oder die Ausrichtung ändert sich jedoch, das Ergebnis in die richtige Färbung.Ich erstellte eine Zusammenfassung, die helfen, Sie mildern diese. Der code bindet ein globales layout Beobachter auf die Symbolleiste, und wenn es findet ein überlauf-Symbol ersetzt es und entbindet den Betrachter. So verwenden Sie es nicht an Orten, wo Sie nicht erwarten, dass ein überlauf-Symbol, weil der Beobachter nicht erhalten, ungebunden in diesem Fall.
Link zu gist: https://gist.github.com/consp1racy/4b640679de553fdb3046
Fügen Sie einfach eine sekundäre text Farbe für das Menü "Optionen", d.h.:
In einigen Fällen die sekundäre Farbe ist die Grundfarbe. Ich weiß noch nicht warum.
android:minSdkVersion="21"
.Hinzufügen dieser Elemente zu:
Wenn das nicht hilft, dann versuchen Sie dies:
Wäre dies funktioniert für
Holo.Light.DarkActionBar
Wenn Sie möchten, verwenden Sie material-design in der vor-21 die Geräte, die Sie benötigen, um erweitern
Theme.AppCompat.Light.NoActionBar
Thema. Um das zu tun, müssen Sie kompilierencom.android.support:appcompat-v7:21.0.0
als eine Abhängigkeit von Ihrem Projekt, auf diese Weise werden Sie in der Lage, verwenden Sie die Symbolleiste in Ihrem layout.Dann definieren Sie Ihr Thema in values/themes.xml::
und Ihr die toolbar in Ihrem layout/my_activity.xml:
Haben Sie optional attrs zu definieren das Thema und popupTheme sowie:
Chris Dämonen hat einen guten Artikel über diese, die Sie Lesen sollten, https://chris.banes.me/2014/10/17/appcompat-v21/
Lese ich die Kommentare von den Fragen, die Sie mit eclipse, empfehle ich die Verwendung von android studio + gradle und nicht eclipse.
android:minSdkVersion="21"
um sicher zu sein, dass der API-Ebene/ Unterstützung Bibliothek ist nicht das problem. Außerdem verwende ich in meiner Frageandroid:Theme.Material.Light
und nichtTheme.AppCompat.Light.NoActionBar
. Ich löschen den Kommentar, so dass es nicht verwirrend.Fügen Sie einfach
android:theme="@style/ThemeOverlay.AppCompat.Dark"
auf der Symbolleisteoverflow-Menü-Symbol wird nun weiß 🙂