Propriété de Albiri Sigue
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
128 L’art du développement Android
Comme on pourrait s’y attendre, on peut ouvrir et refermer le tiroir en traitant les événements "touchés" à partir du code Java. Il existe deux groupes de méthodes : les premières
agissent instantanément (open(), close() et toggle()), les autres utilisent une animation
(animateOpen(), animateClose() et animateToggle()). Le tiroir se verrouille avec
lock() et se déverrouille avec unlock() ; lorsqu’il est verrouillé, le tiroir ne répond pas
aux touchés sur l’écran.
Vous pouvez également, si vous le souhaitez, enregistrer trois types de méthodes de rappel :
● un écouteur qui sera appelé lors de l’ouverture du tiroir ;
● un écouteur qui sera appelé lors de la fermeture du tiroir ;
● un écouteur qui sera appelé lorsque le tiroir "défile" (c’est-à-dire lorsque l’utilisateur
tire ou repousse la poignée).
Le SlidingDrawer du lanceur, par exemple, change l’icône de sa poignée pour qu’elle
signifie "ouvrir", "fermer" ou "supprimer" (lorsque l’on touche pendant un certain temps
une icône du bureau). Pour ce faire, il utilise notamment des méthodes de rappel comme
celles que nous venons de citer.
SlidingDrawer peut être vertical ou horizontal. Cependant, cette orientation reste identique quelle que soit celle de l’écran : en d’autres termes, si vous faites pivoter le terminal
ou l’émulateur pendant qu’il exécute DrawerDemo, le tiroir s’ouvrira toujours en partant du
bas – il ne "colle" pas toujours au bord par rapport à celui auquel il s’est ouvert. Pour que
le tiroir s’ouvre toujours du même côté, comme le lanceur, vous aurez besoin de layouts
différents pour le mode portrait et le mode paysage – un sujet que nous aborderons au
Chapitre 19.
Autres conteneurs intéressants
Android fournit également le conteneur AbsoluteLayout, dont le contenu est disposé en
fonction de coordonnées spécifiques – on lui indique où placer un fils en précisant ses
coordonnées X, Y, et Android le positionne à cet endroit sans poser de question. Ceci a
l’avantage de fournir un positionnement précis ; en revanche, cela signifie également que
les vues n’auront un aspect correct que sur des écrans d’une certaine dimension, à moins
d’écrire beaucoup de code pour ajuster les coordonnées en fonction de la taille de l’écran.
Les écrans Android pouvant avoir n’importe quelle taille et ces tailles évoluant continuellement, l’utilisation d’AbsoluteLayout risque de devenir assez problématique.
Android dispose également d’une nouvelle variante de liste, ExpandableListView, qui
fournit une représentation arborescente simplifiée autorisant deux niveaux de profondeur :
les groupes et les fils. Les groupes contiennent les fils, qui sont les "feuilles" de l’arbre.
Cette liste nécessite un nouvel ensemble d’adaptateurs car la famille ListAdapter ne
fournit aucune information de groupage pour les éléments d’une liste.
Livre Android.book Page 128 Dimanche, 8. novembre 2009 12:23 12
Précédent

- 143/391

Suivant