2015-11-13 22 views
16

Ich entwickle eine App und ich möchte change the textcolor of the actionbar title. jetzt, definierte ich ein Thema in meinem Manifest:Android - Ändern Actionbar Titel Textfarbe

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

, die in styles.xml definiert:

<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> 

dies nicht funktioniert, aber ich nicht, warum. Dies sollte nach this answer funktionieren. weder der Textview-Stil funktioniert.

was mache ich falsch?

UPDATE: geändert Gnade Feng Antwort unten

+0

haben Sie erhalten eine Antwort auf diese noch? –

+0

noch nicht leider –

Antwort

0

umher Stackoverflow einstellen fand ich this answer die schließlich arbeitete.

Ich berichte 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> 
+2

Ich folgte diesem Beispiel Einstellung @ Farbe/my_color zu # 000000, und mein Text in der Aktionsleiste ist immer noch weiß. – James

+0

Sowohl der actionBar-Hintergrund als auch die Textfarben wurden weiß. – Mohammed

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

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

Sie verfehlten ein Symbol "@" hier zu treffen?

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

auch

<style name="AppTheme.TextView" parent="@android:Widget.TextView"> 
+1

oh, das ist peinlich. Wie auch immer, das funktioniert sowieso nicht, Actionbar-Titel bleibt weiß und Textansichten werden schwarz –

4

könnten Sie finden, wie ActionBarhere anpassen. Ich empfehle stattdessen ToolBar und Theme.AppCompat statt - example.

0

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

Erstens habe ich AppCompatActivity als Basisaktivität verwendet und Fehler erhalten. und dann benutze ich Aktivität und es funktioniert. Meiner Meinung nach ist Ihr Code für Theme.Holo Thema verwenden, und jetzt verwenden wir Theme.AppCompat. Wenn Sie also Änderungen vornehmen möchten, geben Sie einfach Changing Background and text color of AppCompat Light DarkActionBar Theme on android an. Es funktioniert für mich. Viel Glück für Sie.

+0

Ich habe einen NavigationDrawer in der Aktivität, also erweitert er AbstractNavDrawerActivity. Leider habe ich diesen Code nicht geschrieben, deshalb weiß ich nicht wirklich, warum der Typ, der dies geschrieben hat, es so verwendet hat: S –

+1

Ich sehe AbstractNavDrawerActivity und diese Aktivität wird von ActionBarActivity erweitert. Und dein Thema ist Form Theme.Holo. Also wird es nicht funktionieren. Wenn Sie die Aktivität nicht ändern möchten, ändern Sie einfach das Thema wie http://stackoverflow.com/questions/29957822/changing-background-and-text-color-of-appcompat-light-darkactionbar-theme-on-andand . es wird funktionieren – sunday

0

Scheint, Sie haben style statt verwendet. Styles and themes differ. So ersetzen

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

Mit

<style name="AppTheme" parent="android:Theme.Light"> 
+0

wenn ich das wie Sie vorgeschlagen android studio ist nicht in der Lage, es zu finden und gibt einen Fehler zurück, all die Vorschläge gehören ': style' –

+0

@JacopoGrassi Bitte lesen Sie den Artikel, den ich verlinkt habe. –

+0

tat ich. Ich behaupte, dass ich es nicht für die Registerkarte "Anwendung" verwenden sollte, sondern für einzelne Ansichten. Aber dann bleibt meine Frage, wie ändere ich die Textfarbe? –

11

SpannableString Verwenden wir Textfarbe von Actionbar title

SpannableString s = new SpannableString(title); 
s.setSpan(new ForegroundColorSpan(Color.GREEN), 0, title.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
getSupportActionBar().setTitle(s); 
1

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

Also hier ist es,

Aktionsleiste Titel 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> 

Jetzt fügen Sie diesen Stil als Ihr Thema für die Symbolleiste in der XML.

<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 haben Sie, was Sie brauchen.

Dank

1

Wenn ich das gleiche Problem bekam, habe ich:

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

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

Gerade app:titleTextColor="@color/CUSTOM_COLOR" hinzufügen wie folgt:

<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"/> 
0

Ich weiß nicht die Lösung, aber ich war Mit dieser Methode können Sie die Textfarbe zwischen Weiß und Schwarz ändern.

so im styles.xml Sie haben:

<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 ändern, was in der Eltern = „...“ zu dunklen oder hellen Themen, es passt sich die Textfarbe zu diesen Themen. Zum Beispiel haben Sie gerade ein dunkles Thema, und der Text ist weiß, aber wenn ich zu "Theme.AppCompat.Light" wechsle, wird die Textfarbe schwarz.

Ich hoffe, es hilft in gewisser Weise.

0

Ändern der Activity Thema wie:

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

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

</style> 
Verwandte Themen