2012-10-24 4 views
4

Je voulais essayer ce funny title bar coloring, mais il ne fonctionne pas pour moi commeL'ID de titre/barre d'action dans android?

getWindow().findViewById(android.R.id.title); 

retourne NULL. Je l'ai donc regardé avec Hierarchy Viewer et j'ai découvert que la vue s'appelait plutôt id/action_bar. Mais il n'y a pas de R.id.action_bar (la saisie semi-automatique ne l'offre pas et il n'y a rien comme ceci est R.java).

Alors maintenant, je suis doublement confus:

  • est-android.R.id.title sorte obsolète maintenant (j'utilise la version 16 dans mon émulateur)? D'où vient id/action_bar?
  • Quelle est la pratique recommandée et simple w.r.t. compatibilité?

Dois-je obtenir ActionBarSherlock? À l'origine, je voulais juste changer la couleur de la barre de titre ... pas trop avec ça.

Répondre

1

Je recommanderais d'utiliser ActionBarSherlock si vous êtes à la recherche de compatibilité avec les versions Android avant l'API niveau 14/Android 4.0.

La modification de l'arrière-plan de l'ActionBar est simple et s'effectue plus facilement via des styles. Voir la section "Arrière-plan" de http://android-developers.blogspot.com/2011/04/customizing-action-bar.html

Vous pouvez également le modifier via le code. Mettez dans votre onCreate():

GradientDrawable gradientDrawable = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[] {Color.RED, Color.GREEN}); 
getActionBar().setBackgroundDrawable(gradientDrawable); 

Voici une capture d'écran de ce code en action:

enter image description here

+0

Comme dit louielouie, vous pouvez le faire dans XML ou Java, mais XML est préférable pour des styles comme celui-ci car Android applique vos styles car votre activité est en cours de chargement, donc le style personnalisé n'est pas retardé. –

Questions connexes