A partir de la version 3.0, Google a essayé de mettre un accent plus important sur tous les aspects liés à l’ergonomie. Au départ on pouvait reprocher aux applications Android, de ne pas avoir une identité ergonomique commune contrairement à ce que l’on trouve sur Ios.
Google a donc mis à disposition un guide d’ergonomie pour les développeurs http://developer.android.com/design/index.html en leur demandant au possible d’appliquer ces règles. Di nous prenons l’exemple de la navigation dans une application, plusieurs éléments sont préconisés
1. action
bar, 2. split action bar, 3. navigation tab
Actionbar
ActionBar (http://developer.android.com/guide/topics/ui/actionbar.html) est un objet ajouté à partir de la version 11 de l’API (Android 3.0) dans toutes les activités utilisant le thème par défaut Theme.Holo. Evidemment vous avez la possibilité de masquer cette barre d’actions soit en utilisant le style Theme.Holo.NoActionBar soit dans le code de votre activité dans la méthode onCreate en indiquant
getActionBar().hide();
Pour ajouter des éléments dans l’ActionBar, vous devez déclarer dans votre activité que vous utilisez un menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menumatchadder, menu);
return true;
}
Les éléments du menu sont spécifiés dans un fichier xml menumatchadder.xml dans le répertoire /res/menu. L’élément id est important pour pouvoir ensuite identifier l’action dans votre code
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/openMatch"
android:title="@string/button_open"
android:icon="@drawable/open"
android:showAsAction="collapseActionView|ifRoom" />
</menu>
Au niveau du rendu d’une action il est préférable d’utiliser des images car une image est toujours plus efficace que des mots (attention par contre à utiliser des images suggestives). Vous pouvez télécharger le jeu d’image de base mis à disposition par Google à l’URL suivante https://dl-ssl.google.com/android/design/Android_Design_Icons_20120229.zip
L’option ifRoom indique que l’action sera affichée dans la barre de bouton, seulement si de la place est disponible.
Pour résoudre ce problème de place dans la barre d’action, Google a introduit à partir de la version 14 de l’API (Android 4.0) une nouvelle barre de navigation en bas de l’écran la Split action bar
Cette barre est accessible en ajoutant uiOptions="splitActionBarWhenNarrow" dans la déclaration de votre application ou de votre activity dans le fichier manifest.
Si vous avez beaucoup d’actions vous pouvez utiliser la troisième zone de navigation qui est la zone d’onglet (navigation Tab http://developer.android.com/guide/topics/ui/actionbar.html#Tabs)
Traitement associé à une action
Pour gérer le clic sur les boutons de la barre de menu vous devrez ajouter une nouvelle méthode dans votre activité.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.newMatch:
launchScoreSheetAdder();
return true;
case R.id.saveMatch:
launchScoreSheetSaver();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Il est possible de créer des ActionView et des ActionProvider pour personnaliser un peu plus vos barres d’action mais je n’en parlerai pas dans cet article.
A suivre
Le prochain article montrera comment utiliser les composants de navigation sur une version Android inférieure à la version où ces fonctionnalités ont été mises à disposition (ActionBar à partir de l’API level 11, SplitBar et NavigationTab à partir de l’API level 14)

Aucun commentaire:
Enregistrer un commentaire
Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.