Plus besoin d’utiliser ActionBarSherlock, l’ActionBar est maintenant accessible via la support-library.

Screen Shot 2013-07-24 at 8.04.27 PM

A l’occasion de la sortie de l’API 18 (ou plutôt Android 4.3), Google vient de mettre à jour sa support-library qui permet d’utiliser des composants récents sur de vieilles versions d’Android. Les ingénieurs de Google l’avaient annoncé depuis longtemps et la fameuse ActionBarCompat est enfin disponible.

Concrètement pour les terminaux utilisant Android 2.1 et versions supérieures, il n’est plus nécessaire d’utiliser ActionBarSherlock pour avoir un comportement similaire à l’ActionBar de Honeycomb (tablettes) et Ice Cream Sandwich (unifié). Son utilisation se rapproche de celle Jake Wharton (NDLR : le créateur d’ActionBarSherlock) dans la mesure où vous allez maintenant utiliser trois nouveaux thèmes :

@style/Theme.AppCompat (Thème Holo par défaut)
@style/Theme.AppCompat.Light (Thème Holo Light)
@style/Theme.AppCompat.Light.DarkActionBar (Thème Holo Light avec une ActionBar foncée)

La personnalisation est bien évidemment au rendez-vous et il faudra utiliser le même procédé dans les fichiers de style xml, c’est-à-dire qu’il va falloir utiliser les attributs avec le namescape android (android:actionBarStyle= »… »), mais aussi celui de la version compat (actionBarStyle= »… »). De même pour les items dans vos menus, où il faudra rajouter votrenamespace:actionViewClass= »… » ou votrenamespace:showAsAction= »always ». Pour ce qui est des Fragment, vous n’avez plus à étendre une classe spécifique, celle de la support-library sera suffisante et supportera l’ActionBarCompat.

Vous trouverez plus de détails dans cette vidéo complète de Chris Banes :

Lien Youtube
Chaine Youtube FrAndroid

S’arrêter à l’ActionBarCompat pour cette nouvelle version de la support-library consisterait à faire un énorme raccourci, car on retrouve des nouveautés dans plusieurs domaines :

  • Interface utilisateur : BidiFormatter supporte les textes écrits de gauche à droite et droite à gauche
  • Accessibilité : Simplification de l’intégration de l’accessibilité dans les vues personnalisées grâce à ExploreByTouchHelper
  • Médias : DisplayManagerCompat permet de gérer l’affichage sur un ou plusieurs affichages externes et TransportMediator aide à l’implémentation d’un contrôleur média (lecteur/pause/suivant…)
  • Autres : l’AsyncTaskLoader se voit agrémenté de deux nouvelles méthodes commitContentChanged et rollbackContentChanged. Un WakefulBroadcastReceiver permet de détecter un réveil d’un terminal pour effectuer ensuite un algorithme dans un Service, le tout en évitant que le code ne soit interrompu par un retour en veille.
  • Correction de bugs