wake-up-neo.com

So ändern Sie die Action-Textfarbe von ActionBar mit AppCompat

Ich versuche, die Textfarbe eines Aktionsmenüelements in der Aktionsleiste zu ändern. Verwenden von App Comp. Auch das Überlaufsymbol ändert sich nicht. Hier sind meine benutzerdefinierten Styles.xml-Dateien.

res/values ​​/ styles.xml

<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
    <!-- Setting values in the default namespace affects API levels 7-13 -->
    <item name="actionBarStyle">@style/MyStyledActionBar</item>
</style>

<style name="MyStyledActionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
    <!-- Setting values in the default namespace affects API levels 7-13 -->
    <item name="background">@drawable/bg_action_bar</item>
    <item name="titleTextStyle">@style/MyActionBarTitleText</item>
    <item name="actionMenuTextAppearance">@style/MyActionBarMenuText</item>
    <item name="actionMenuTextColor">@style/MyActionBarMenuText</item>
    <item name="actionOverflowButtonStyle">@style/MyActionButtonOverFlow</item>
</style>

<style name="MyActionBarTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="Android:textColor">@color/font_half_white</item>
</style>

<style name="MyActionBarMenuText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Menu">
    <item name="Android:textColor">@color/font_half_white</item>
</style>

<style name="MyActionButtonOverFlow" parent="@style/Widget.AppCompat.Light.ActionButton.Overflow">
    <item name="Android:src">@drawable/ic_action_search</item>
</style>

res/values-14/styles.xml

<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
    <!-- Setting values in the Android namespace affects API levels 14+ -->
    <item name="Android:actionBarStyle">@style/MyStyledActionBar</item>
</style>

<style name="MyStyledActionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
    <!-- Setting values in the Android namespace affects API levels 14+ -->
    <item name="Android:background">@drawable/bg_action_bar</item>
    <item name="Android:titleTextStyle">@style/MyActionBarTitleText</item>
    <item name="Android:actionMenuTextAppearance">@style/MyActionBarMenuText</item>
    <item name="Android:actionMenuTextColor">@style/MyActionBarMenuText</item>
    <item name="Android:actionOverflowButtonStyle">@style/MyActionButtonOverFlow</item>
</style>

<style name="MyActionBarTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="Android:textColor">@color/font_half_white</item>
</style>

<style name="MyActionBarMenuText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Menu">
    <item name="Android:textColor">@color/font_half_white</item>
</style>

<style name="MyActionButtonOverFlow" parent="@style/Widget.AppCompat.Light.Base.ActionButton.Overflow">
    <item name="Android:src">@drawable/ic_action_search</item>
</style>

res/colors.xml # F3F3F3

Die Textfarbe Schwarz ändert sich nicht in Weiß. Hat jemand die Textfarbe des Aktionsmenüs erfolgreich geändert. Bitte schlagen Sie einige Einblicke vor. Ich teste auf einem 4.4 Nexus5-Gerät.

enter image description here

16
Mani

Benutzen

<item name="Android:actionMenuTextColor">@color/font_half_white</item>
// added style directly 

Anstatt

<item name="Android:actionMenuTextColor">@style/MyActionButtonStyle</item>

in res/values-14/styles.xml

In res/values/styles.xml

<item name="actionMenuTextColor">@color/font_half_white</item>

Ich habe zum Testen eine rote Farbe verwendet. Siehe Aktionsmenüelement Startseite, das im Snap rot ist

enter image description here

Bearbeiten:

Vollständiger Code

In res/values-14/styles.xml

<resources>

    <!--
        Base application theme for API 14+. This theme completely replaces
        AppBaseTheme from BOTH res/values/styles.xml and
        res/values-v11/styles.xml on API 14+ devices.
    -->
    <style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- API 14 theme customizations can go here. -->
            <item name="Android:actionMenuTextColor">@color/red</item>
    </style>

</resources>

Dann in res/values ​​/ stles.xml

  <resources>
    <style name="AppBaseTheme" parent="Theme.AppCompat.Light">
        <!-- API 11 theme customizations can go here. -->
         <item name="actionMenuTextColor">@color/red</item>
    </style>

</resources>

In Manifest

Android: theme = "@ style/AppBaseTheme">

Ein weiterer Schnappschuss

enter image description here

16
Raghunandan

Sie können dies verwenden, um den Text der Aktionsleiste unabhängig von Ihrer Appcompat-Version zu ändern. Geben Sie den Hex-Code der gewünschten Farbe ein und fügen Sie diesen in onCreate () hinzu.

actionBar.setTitle(Html.fromHtml("<font color='#ff0000'>Some Title</font>"));
1
onexf
  1. Stellen Sie sicher, dass in Ihrer XML-Layoutdatei kein Android:theme-Attribut für Ihren <Toolbar> angegeben ist, das Vorrang vor dem Hauptthema hätte

  2. Überschreiben Sie Ihr actionBarStyle-Attribut, wie überall in den Internets angegeben.

0
DoruChidean