2012-04-27 14 views
14

¿Cómo establecer el color del título en ActionBarSherlock?¿Cómo establecer el color del título en ActionBarSherlock?

¿Qué atributos de tematización debo usar?

+0

color del texto (título); o el color de la barra? – Davek804

+0

Sí, título (texto) color ... –

+2

@ style/CustomActionBarStyle Estoy usando la versión mínima 7, el andriod anterior: el prefijo no admite el error requerido min sdk versión 11. Hay otra sugerencia para establecer el color o la imagen de fondo de la barra de título. – ramesh

Respuesta

35

De los ActionBarSherlock website

Temas padres

Para que la aplicación barra de acción personalizada a funcionar la aplicación debe utilizar Theme.Sherlock, Theme.Sherlock.Light o Theme.Sherlock. Light.DarkActionBar, o su tema personalizado debe usar uno de los anteriores como su padre.

espejo Atributos

Debido a las limitaciones en el sistema de tematización del androide cualquier personalización del tema se debe declarar en dos atributos. Los atributos-android prefijado normales se aplican al tema de la barra de acción nativo y los atributos sin prefijo son para la implementación personalizada ...

En pocas palabras, eso significa que hay que dejar de lado el prefijo android: cuando estás styling el ActionBar.

tematización el color del título

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<style name="YOURTHEME" parent="Theme.Sherlock.Light"> 
<item name="android:actionBarStyle">@style/YOURTHEME.ActionBarStyle</item> 
<item name="actionBarStyle">@style/YOURTHEME.ActionBarStyle</item> 
</style> 

<style name="YOURTHEME.ActionBarStyle" parent="Widget.Sherlock.Light.ActionBar"> 
<item name="android:titleTextStyle">@style/YOURTHEME.ActionBar.TitleTextStyle</item> 
<item name="titleTextStyle">@style/YOURTHEME.ActionBar.TitleTextStyle</item> 
</style> 

<style name="YOURTHEME.ActionBar.TitleTextStyle" parent="TextAppearance.Sherlock.Widget.ActionBar.Title"> 
<item name="android:textColor">@color/YOUR_COLOR</item> 
<item name="textColor">@color/YOUR_COLOR</item> 
</style> 
</resources> 

NOTA

No he probado esto. Además, what have you tried? Debe buscar antes de publicar en SO en el futuro.

+0

Sí, lo sé pero no encontré sobre el atributo "titleTextStyle", gracias! –

+4

el textColor arroja un error? Algunas ideas ? – AndroidDev

+4

No es necesario, puede eliminarlo – icastell

24

he cambiado el color del título de la siguiente manera:

en el archivo styles.xml, he añadido estos estilos

<style name="Theme.Styled" parent="@style/Theme.Sherlock.Light"> 
    <item name="actionBarStyle">@style/CustomActionBarStyle</item> 
    <item name="android:actionBarStyle">@style/CustomActionBarStyle</item> 
</style> 

<style name="CustomActionBarStyle" parent="@style/Widget.Sherlock.ActionBar"> 
    <item name="titleTextStyle">@style/CustomTitleColorBar</item> 
    <item name="android:titleTextStyle">@style/CustomTitleColorBar</item> 
</style> 

<!-- Style for the color title bar --> 
<style name="CustomTitleColorBar" parent="@style/TextAppearance.Sherlock.Widget.ActionBar.Title"> 
    <item name="android:textColor">@android:color/white</item> 
</style> 

lo último que hice fue establecer el tema en la actividad :

public static int THEME = R.style.Theme_Styled;

esta línea va delante método super.onCreate()

setTheme (TEMA);

esto es todo.

+0

¿Necesita el "@ style /" en los estilos principales o también funcionaría sin? – Pepster

+0

¿Cómo cambio el fondo con esta solución? – TharakaNirmana

43

Usted puede hacer esto con

getSupportActionBar().setTitle(Html.fromHtml("<font color='#ffffff'>App Name</font>")); 
+2

buen truco! txn! –

+1

Bueno. Gracias. –

+0

Buena respuesta. Funciona en todos los niveles de api sin ningún problema. – Santhosh

1

puede hacerlo desde 2 lugares, ya sea en style.xml o programáticamente
1. Desde style.xml

2.O en el código

int titleId = Resources.getSystem().getIdentifier("action_bar_title", "id", "android"); 
TextView yourTextView = (TextView)findViewById(titleId); 
yourTextView.setTextColor(getResources().getColor(R.color.myColor)); 
1

Creo que está intentando cambiar el color del texto que está en el menú , no el color de texto que se encuentra en el Título en ActionBarSherlock.

Cuando utiliza getSupportActionBar().SetTitle("My Title") para darle un estilo a este texto, debe usar el código @Archie.bpgc. Su respuesta es correcta, pero creo que usted está en necesidad del siguiente código:

<style name="MyTheme.TitleTextStyle" parent="TextAppearance.Sherlock.Widget.ActionBar.Menu"> 
    <item name="android:textColor">@color/white</item> 
    <item name="android:textSize">24sp</item> 
    <item name="android:gravity">center</item> 
</style> 

Ver que simplemente se pueden intercambiar con parent =" TextAppearance.Sherlock.Widget.ActionBar.Title">parent = "TextAppearance.Sherlock.Widget.ActionBar.Menu">

Cuestiones relacionadas