web-dev-qa-db-de.com

Android - Ändern der Actionbar-Titeltextfarbe

Ich entwickle eine App und möchte change the textcolor of the actionbar title. Jetzt definierte ich ein Thema in meinem Manifest:

<application
        Android:theme="@style/AppTheme">
</application>

welche in styles.xml definiert ist:

<style name="AppTheme" parent="Android:style/Theme.Holo.Light">
        <item name="Android:textViewStyle">@style/AppTheme.TextView</item>
        <item name="Android:actionBarStyle">@style/AppTheme.ActionBarStyle</item>
    </style>

    <style name="AppTheme.ActionBarStyle" parent="@Android:style/Widget.Holo.Light.ActionBar">
        <item name="Android:titleTextStyle">@style/AppTheme.ActionBar.TitleTextStyle</item>
    </style>

    <style name="AppTheme.ActionBar.TitleTextStyle" parent="@Android:style/TextAppearance.Holo.Widget.ActionBar.Title">
        <item name="Android:textColor">@color/themeapp</item>
    </style>

    <style name="AppTheme.TextView" parent="@Android:style/Widget.TextView">
        <item name="Android:textColor">#FFFFFF</item>
    </style>

das funktioniert nicht, aber ich verstehe nicht warum. Dies sollte nach this answer . funktionieren, und auch der Textview-Stil funktioniert nicht.

was mache ich falsch

UPDATE: Geändert, um Grace Feng Antwort unten zu treffen

17
jack_the_beast

als ich um StackOverflow herumwanderte, fand ich diese Antwort die endlich funktionierte.

Ich berichte es hier:

<style name="AppTheme" parent="Android:Theme.Holo.Light.DarkActionBar">
    <item name="Android:actionBarStyle">@style/ActionBar</item>
    ...
</style>

<style name="ActionBar" parent="@Android:style/Widget.ActionBar">
  <item name="Android:titleTextStyle">@style/ActionBar.Title</item>
  <item name="Android:subtitleTextStyle">@style/ActionBar.Subtitle</item>
  ...
</style>

<style name="ActionBar.Title">
  <item name="Android:textColor">@color/my_color</item>
</style>

<style name="ActionBar.Subtitle">
  <item name="Android:textColor">@color/my_color</item>
</style>
0
jack_the_beast

Mit SpannableString können wir die Textfarbe von Actionbar title einstellen.

SpannableString s = new SpannableString(title);
s.setSpan(new ForegroundColorSpan(Color.GREEN), 0, title.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
getSupportActionBar().setTitle(s);
14
Parag Chauhan
<style name="AppTheme" parent="Android:style/Theme.Holo.Light">

<style name="AppTheme.TextView" parent="Android:Widget.TextView">

Sie haben hier ein Symbol "@" verpasst?

<style name="MyTheme" parent="@Android:style/Theme.Holo.Light">

ebenfalls 

<style name="AppTheme.TextView" parent="@Android:Widget.TextView">
9
panda

Wie Sie ActionBarhier anpassen, erfahren Sie hier . Ich empfehle stattdessen ToolBar und Theme.AppCompat - example .

4

Fügen Sie einfach app:titleTextColor="@color/CUSTOM_COLOR" hinzu:

<Android.support.v7.widget.Toolbar
    Android:id="@+id/toolbar"
    Android:layout_width="match_parent"
    Android:layout_height="?attr/actionBarSize"
    Android:background="@color/yellow_light"
    app:titleTextColor="@color/CUSTOM_COLOR"
    app:popupTheme="@style/AppTheme.PopupOverlay"/>
2
Maximoapps Inc

Ich gehe davon aus, dass Sie ToolBar als ActionBar verwenden. Von allen Antworten denke ich, dass dies am einfachsten zu implementieren ist. Und funktioniert auf allen API-Versionen.

Hier ist es also,

Der Titel der Aktionsleiste verwendet textColorPrimary als Textfarbe. Um dies in styles.xml zu ändern, erstellen Sie einen neuen Stil mit einem Element für textColorPrimary und legen Sie die gewünschte Farbe fest.

<style name="appBarTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="Android:textColorPrimary">@color/colorRed</item>
</style>

Fügen Sie diesen Stil jetzt als Design für die Symbolleiste in der XML-Datei hinzu.

<Android.support.v7.widget.Toolbar
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    app:layout_scrollFlags="enterAlways"
    Android:id="@+id/toolbar"
    Android:theme="@style/appBarTheme">
</Android.support.v7.widget.Toolbar>

Und jetzt hast du was du brauchst.

Vielen Dank

1
Akash Rudra

Als ich das gleiche Problem bekam, benutzte ich: 

<item name="titleTextStyle">@style/ActionBarTextStyle</item>

<item name="Android:titleTextStyle">@style/ActionBarTextStyle</item>
1
IDmikael

Ändern Sie das Thema Activity wie folgt:

<style name="ThemeName" parent="Android:Theme.Holo.Light">

   <item name="Android:actionMenuTextColor">@color/white</item>

</style>
0
coder

Sie haben anscheinend style anstelle von theme verwendet. Stile und Themen unterscheiden sich . Also ersetzen

<style name="AppTheme" parent="Android:style/Theme.Holo.Light">

Mit

<style name="AppTheme" parent="Android:Theme.Light">
0
Hi I'm Frogatto

Ich denke, es ist nur das Problem Ihrer Aktivität. Ich habe den gleichen Code wie Sie verwendet, und es funktioniert.  enter image description here

Zuerst habe ich AppCompatActivity als Basisaktivität verwendet und Fehler erhalten. und dann benutze ich aktivität und es funktioniert ... Meiner Meinung nach wird Ihr Code als Theme für Theme.Holo verwendet, und jetzt verwenden wir Theme.AppCompat. Wenn Sie also Änderungen vornehmen möchten, verweisen Sie einfach auf Ändern der Hintergrund- und Textfarbe von AppCompat Light DarkActionBar Theme auf Android . Es funktioniert für mich. Viel Glück für Sie.

0
sunday

Hatte gerade dieses Problem gefunden, endlich herausgefunden ... In Ihrer style.xml geben Sie keine Hintergrundfarbe für Ihre Symbolleiste an .. Definieren Sie dann die Farbe in jeder Datei layout.xml:

<Android.support.v7.widget.Toolbar
    Android:id="@+id/my_toolbar"
    Android:layout_width="match_parent"
    Android:layout_height="?attr/actionBarSize"
    Android:background="#B678EE"
    Android:elevation="4dp"
    Android:theme="@style/ToolbarTheme"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

Dies gibt Ihnen die Flexibilität, je nach Aktivität bei Bedarf leicht unterschiedliche Farben der Aktionsleiste zu haben.

0
SentientFlesh

Ich kenne die Lösung nicht, aber ich konnte mit dieser Methode die Textfarbe zwischen weiß und schwarz ändern.

in der styles.xml haben Sie also:

<resources>
    <style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar">
        <item name="colorPrimary">#673AB7</item>
        <item name="colorPrimaryDark">#512DA8</item>
        <item name="colorAccent">#FF4081</item>
    </style>
</resources>

wenn Sie den Inhalt des übergeordneten Elements = "..." in dunkle oder helle Themen ändern, wird die Textfarbe an diese Themen angepasst. Zum Beispiel haben Sie jetzt ein dunkles Thema und der Text ist weiß, aber wenn ich zu "Theme.AppCompat.Light" wechsle, wird die Textfarbe schwarz.

Ich hoffe es hilft irgendwie.

0
Max