2015-11-13 29 views
16

Sto sviluppando un'applicazione e voglio change the textcolor of the actionbar title. ora, ho definito un tema nel mio manifesto:Android - Cambia la barra delle azioni Titolo Testo Colore

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

che è definito in styles.xml:

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

questo non funziona, ma non capisco perché. questo dovrebbe funzionare secondo lo this answer. Non funziona lo stile textview.

cosa sto facendo male?

UPDATE: cambiato per soddisfare Grazia Feng risposta qui sotto

+0

Hai una risposta a questo ancora? –

+0

non ancora purtroppo –

risposta

0

vagando StackOverflow ho trovato this answer che alla fine ha funzionato.

vi riporto qui:

<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

Ho seguito questo esempio impostando @ color/my_color su # 000000 e il mio testo all'interno della barra delle azioni è ancora bianco. – James

+0

Entrambi i colori di sfondo e testo di ActionBar sono diventati bianchi. – Mohammed

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

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

Ti sei perso un simbolo "@" qui?

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

anche

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

oh, questo è imbarazzante. comunque, questo non funziona comunque, il titolo della barra delle azioni rimane bianco e le viste testuali rimangono nere –

4

Si potrebbe trovare come personalizzare ActionBarhere. Raccomando di usare ToolBar e Theme.AppCompat invece - example.

0

Penso che sia solo il problema della tua attività. Ho usato lo stesso codice di te, e funziona. enter image description here

In primo luogo, ho usato AppCompatActivity come attività di base e ottenere errore. e poi uso l'attività e funziona. A mio parere, il tuo codice è utilizzato per theme per Theme.Holo, e ora usiamo Theme.AppCompat. Quindi se vuoi cambiare, basta fare riferimento a Changing Background and text color of AppCompat Light DarkActionBar Theme on android. Funziona per me. Buona fortuna per te.

+0

Ho un NavigationDrawer nell'attività, quindi estende AbstractNavDrawerActivity. sfortunatamente non ho scritto questo codice, quindi non so davvero perché il tizio che lo ha scritto lo abbia usato in questo modo: S –

+1

Vedo AbstractNavDrawerActivity e questa attività è estesa da ActionBarActivity. E il tuo tema è forma Theme.Holo. Quindi non funzionerà. Se non vuoi cambiare l'attività, cambia il tema come http://stackoverflow.com/questions/29957822/changing-background-and-text-color-of-appcompat-light-darkactionbar-theme-on-and . funzionerà allo – sunday

0

Sembra che tu abbia utilizzato style anziché theme. Styles and themes differ. Quindi sostituire

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

Con

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

se metto questo come hai suggerito, Android Studio non è in grado di trovarlo e restituisce un errore, tutti i suggerimenti includono ': style' –

+0

@JacopoGrassi Leggi l'articolo a cui mi sono collegato. –

+0

L'ho fatto. Capisco che non dovrei usarlo per la scheda dell'applicazione, ma piuttosto per le viste di sigle. Ma poi la mia ricerca rimane, come posso cambiare il colore del testo? –

11

Usando SpannableString possiamo impostare il colore del testo di Actionbar title

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

Io parto dal presupposto che si sta utilizzando ToolBar come ActionBar. Di tutte le risposte penso che sia la più semplice da implementare. E funziona su tutte le versioni API.

Così qui è,

azione barra del titolo utilizza textColorPrimary come il colore del testo. Quindi per cambiare quello in styles.xml crea un nuovo stile con un oggetto per textColorPrimary e imposta il colore che ti serve.

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

Ora aggiungere lo stile come tema per la barra degli strumenti nel 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> 

E ora hai quello che ti serve.

Grazie

1

quando ho ottenuto lo stesso problema, ho usato:

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

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

Basta aggiungere app:titleTextColor="@color/CUSTOM_COLOR" in questo modo:

<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

non so la soluzione, ma io ero in grado di cambiare il colore del testo tra bianco e nero con questo metodo.

così, nel styles.xml avete:

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

se si cambia quello che c'è dentro il genitore = "..." per temi scuri o chiari, si adatta il colore del testo a questi temi. Ad esempio, in questo momento hai un tema scuro e il testo è bianco, ma quando cambi in "Theme.AppCompat.Light" il colore del testo diventa nero.

Spero che aiuti in qualche modo.

0

Modifica del tema Activity come:

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

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

</style> 
Problemi correlati