AppCompat en version 21 pour apporter le Material Design à tous

AppCompat en version 21 pour apporter le Material Design à tous

La version 5.0 d'Android apporte de nombreux nouveaux composants graphiques, pour un souci de compatibilité la librairie AppCompat a été mise à jour pour les apporter aux plus anciennes versions d'Android.

Material Design

AppCompat

Le SDK de la dernière version d'Android, Lollipop, apporte de nouveaux composants graphiques qui apportent le Material Design. Ce principe est mis en avant dans Google et devrait être déployé sur la plupart de ses services.

Cependant, comme lors de l'apparition de la version 4 (Ice Cream Sandwitch) qui apportait déjà de nombreux éléments graphiques (action bar, fragment, ...), toutes ces nouveautés ne sont pas disponible sur les précédentes versions d'Android.

Pour résoudre ce problème, Google permet d'intégrer une librairie de compatibilité appelée AppCompat. Cela permet aux développeurs d'utiliser les derniers composants d'Android tout en étant compatible avec les anciennes versions. Avec cette librairie, la compatibilité est assurée depuis la version 2.1 d'Android (Eclair).

 

Version 21

Cette nouvelle version apporte donc tous les nouveaux éléments de Material Design (Recycler View, CardView, Palette) et API. Un nouveau widget Toolbar a été introduit, qui donne plus de contrôle et flexibilité à l'Action Bar.

 

Mise en place

En cas d'utilisation de Gradle, il faut ajouter une dépendance :

    compile "com.android.support:appcompat-v7:21.0.+"

 

Si vous n'utilisez pas encore cette librairie dans votre application, il faut :

  • Les activities doivent étendre l'ActionBarActivity qui elle étend la FragmentActivity
  • Les thèmes doivent hérité de Theme.AppCompat (deux variantes : Light et NoActionBar)
  • Quand l'action bar est généré, vérifier que le context de l'action bar est récupéré via getSupportActionBar().getThemedContext()
  • Il faut utiliser des méthodes statiques dans le MenuItemCompat pour les actions qui appellent le Menu Item

 

Si elle est déjà intégrée, dans la plupart des cas, il suffit d'ajouter une seule déclaration de thème :

 

Thème

Le support des nouveaux attributs de la color palette theme qui permet de personnaliser le thème pour être à l'image de votre marque avec les primary and accent colors.

 

Toolbar

toolbar lollipop

Cette nouvelle toolbar est pleinement supporter et il est possible de l'utiliser en action bar ou en standalone (quand l'action bar n'est pas adapté).

 

SearchView

L'API SearchView a été mise à jour, ce qui la rend plus personnalisable.