Ich verwende die v7 appcompat 21-Bibliothek, um die neuen Materialstile auf Geräten vor Lollipop zu verwenden. Meine styles.xml sieht so aus:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="Android:textColorPrimary">#ff0000</item>
<item name="Android:textColorPrimaryInverse">#ff0000</item>
</style>
Ich versuche, die Textfarbe in der Aktionsleiste zu ändern. Aber egal, was ich für textColorPrimary oder textColorPrimaryInverse angegeben habe, die Farbe ist immer weiß. Wenn ich von Theme.AppCompat erbe, kann ich "textColorPrimary" überschreiben, und wenn ich von Theme.AppCompat.Light erbe, kann ich "textColorPrimaryInverse" überschreiben. Beides funktioniert jedoch nicht, wenn das Light.DarkActionBar-Design verwendet wird.
Ich benutze definitiv das AppTheme, weil das Setzen von Attributen wie colorPrimary zum Ändern der Hintergrundfarbe der Aktionsleiste gut funktioniert. Ich verwende keine anderen Stildateien für Ressourcenqualifizierer.
Ich habe die Stildateien für Android=) durchgesehen und kann anscheinend nicht herausfinden, welches Attribut überschrieben werden soll. Ist dies ein Anwendungskompatibilitätsfehler?
Sie können es mit dem actionBarStyle
Attribut des Themas ändern.
<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar.Solid">
<item name="titleTextStyle">@style/MyTitleTextStyle</item>
</style>
<style name="MyTitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="Android:textColor">CHANGE_COLOR_HERE</item>
</style>
Dadurch wird Ihr Symbolleistentitel in der Farbe Weiß angezeigt:
<Android.support.v7.widget.Toolbar
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/toolbar"
Android:layout_height="wrap_content"
Android:layout_width="match_parent"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
Android:minHeight="?attr/actionBarSize"
Android:background="?attr/colorPrimary" />
Um zu verstehen, was ist der Unterschied zwischen ThemeOverlay.AppCompat.Dark.ActionBar
und Theme.AppCompat.Light.DarkActionBar
check diese Antwort
Es ist app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
wendet eine helle Farbe an, da die in diesem Thema verwendete Titelfarbe Weiß ist.
stellen Sie sicher, dass Sie die Änderungen in allen Ihren Werteverzeichnissen vornehmen, z. B. 'values-v11', 'values-v14' usw., falls vorhanden.
Andernfalls stellen Sie sicher, dass in der App dasselbe 'AppTheme' verwendet wird, das Sie oben gezeigt haben.
Bitte senden Sie uns Ihre vollständige style.xml und den Manifest-Code, der auf den Stil verweist, der Ihnen weitere Einblicke in Ihr Problem gibt.
Sie können auch versuchen, Einstellungen vorzunehmen app: Thema und app: popupTheme Attribute auf Ihrer ToolBar.
Versuchen Sie, dies in onCreate Ihrer Aktivität hinzuzufügen. Funktioniert auf fast jeder Android Version.
Für Java Aktivität:
actionBar.setTitle(Html.fromHtml("<font color='#ffff00'>Your Title</font>"));
Für Fragmente:
getSupportActionBar().setTitle(Html.fromHtml("<font color='#ffff00'>Your Title</font>"));
Ich habe eine generierte Layout-XML-Datei verwendet und nicht bemerkt, dass das Android:theme
Attribut wurde überschrieben.
Hast du deine überprüft? :)