J'ai du mal à changer la couleur du titre de la barre d'action Android par programme pour la v11 et les versions ultérieures. Je peux le faire en XML mais je dois le modifier dynamiquement dans le code. Comment dois-je procéder? Merci d'avance.
Réponses
Trop de publicités?L' ActionBar
est masqué, ou en d'autres termes, il est interne et il n'est généralement pas possible d'y accéder. Vous pouvez cependant le référencer en utilisant Resources.getIdentifier
puis View.findViewById
.
Saisissez l'ID de l'action_bar_title
int titleId = getResources().getIdentifier("action_bar_title", "id", "android");
Vous pouvez maintenant utiliser l'ID avec un TextView
TextView abTitle = (TextView) findViewById(titleId);
abTitle.setTextColor(colorId);
Si vous utilisez la bibliothèque appcompat v7 (testée avec r22), vous pouvez appeler setTitleTextColor()
sur l'objet Toolbar
qui remplace la barre d'action pour tous les niveaux d'API. Par exemple:
Toolbar actionBarToolbar = (Toolbar)activity.findViewById(R.id.action_bar);
if (actionBarToolbar != null)
actionBarToolbar.setTitleTextColor(Color.RED);
Si vous utilisez Sherlock Actionbar, vous pouvez utiliser le sherlock-actionbar-id pour les barres d'action prises en charge (Android inférieur à 3.0)
int titleId = Resources.getSystem().getIdentifier("action_bar_title", "id", "android");
if ( 0 == titleId )
titleId = com.actionbarsherlock.R.id.abs__action_bar_title;