Propriété de Albiri Sigue
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
46 L’art du développement Android
Penser de façon linéaire
Comme on l’a déjà mentionné, LinearLayout est un modèle reposant sur des boîtes – les
widgets ou les conteneurs fils sont alignés en colonnes ou en lignes, les uns après
les autres, exactement comme avec FlowLayout en Java Swing, et vbox et hbox en Flex et
XUL.
Avec Flex et XUL, la boîte est l’unité essentielle de disposition des widgets. Avec
Android, vous pouvez utiliser LinearLayout exactement de la même façon, en vous
passant des autres conteneurs. Obtenir la disposition que vous souhaitez revient alors principalement à identifier les imbrications et les propriétés des différentes boîtes – leur
alignement par rapport aux autres boîtes, par exemple.
Concepts et propriétés
Pour configurer un LinearLayout, vous pouvez agir sur cinq paramètres : l’orientation, le
modèle de remplissage, le poids, la gravité et le remplissage.
Orientation
L’orientation précise si le LinearLayout représente une ligne ou une colonne. Il suffit
d’ajouter la propriété android:orientation à l’élément LinearLayout du fichier XML
en fixant sa valeur à horizontal pour une ligne ou à vertical pour une colonne.
Cette orientation peut être modifiée en cours d’exécution en appelant la méthode setOrientation()et en lui fournissant en paramètre la constante HORIZONTAL ou VERTICAL.
Modèle de remplissage
Supposons que nous ayons une ligne de widgets – une paire de boutons radio, par exemple. Ces widgets ont une taille "naturelle" reposant sur celle de leur texte. Ces tailles
combinées ne correspondent sûrement pas à la largeur de l’écran du terminal Android –
notamment parce que les tailles des écrans varient en fonction des modèles. Il faut donc
savoir que faire de l’espace restant.
Pour résoudre ce problème, tous les widgets d’un LinearLayout doivent fournir une
valeur pour les propriétés android:layout_width et android:layout_height. Ces valeurs
peuvent s’exprimer de trois façons différentes :
● Une dimension précise, comme 125 px, pour indiquer que le widget devra occuper
exactement 125 pixels.
● wrap_content, pour demander que le widget occupe sa place naturelle sauf s’il est
trop gros, auquel cas Android coupera le texte entre les mots pour qu’il puisse tenir.
● fill_parent, pour demander que le widget occupe tout l’espace disponible de son
conteneur après que les autres widgets eurent été placés.
Livre Android.book Page 46 Dimanche, 8. novembre 2009 12:23 12
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
46 L’art du développement Android
Penser de façon linéaire
Comme on l’a déjà mentionné, LinearLayout est un modèle reposant sur des boîtes – les
widgets ou les conteneurs fils sont alignés en colonnes ou en lignes, les uns après
les autres, exactement comme avec FlowLayout en Java Swing, et vbox et hbox en Flex et
XUL.
Avec Flex et XUL, la boîte est l’unité essentielle de disposition des widgets. Avec
Android, vous pouvez utiliser LinearLayout exactement de la même façon, en vous
passant des autres conteneurs. Obtenir la disposition que vous souhaitez revient alors principalement à identifier les imbrications et les propriétés des différentes boîtes – leur
alignement par rapport aux autres boîtes, par exemple.
Concepts et propriétés
Pour configurer un LinearLayout, vous pouvez agir sur cinq paramètres : l’orientation, le
modèle de remplissage, le poids, la gravité et le remplissage.
Orientation
L’orientation précise si le LinearLayout représente une ligne ou une colonne. Il suffit
d’ajouter la propriété android:orientation à l’élément LinearLayout du fichier XML
en fixant sa valeur à horizontal pour une ligne ou à vertical pour une colonne.
Cette orientation peut être modifiée en cours d’exécution en appelant la méthode setOrientation()et en lui fournissant en paramètre la constante HORIZONTAL ou VERTICAL.
Modèle de remplissage
Supposons que nous ayons une ligne de widgets – une paire de boutons radio, par exemple. Ces widgets ont une taille "naturelle" reposant sur celle de leur texte. Ces tailles
combinées ne correspondent sûrement pas à la largeur de l’écran du terminal Android –
notamment parce que les tailles des écrans varient en fonction des modèles. Il faut donc
savoir que faire de l’espace restant.
Pour résoudre ce problème, tous les widgets d’un LinearLayout doivent fournir une
valeur pour les propriétés android:layout_width et android:layout_height. Ces valeurs
peuvent s’exprimer de trois façons différentes :
● Une dimension précise, comme 125 px, pour indiquer que le widget devra occuper
exactement 125 pixels.
● wrap_content, pour demander que le widget occupe sa place naturelle sauf s’il est
trop gros, auquel cas Android coupera le texte entre les mots pour qu’il puisse tenir.
● fill_parent, pour demander que le widget occupe tout l’espace disponible de son
conteneur après que les autres widgets eurent été placés.
Livre Android.book Page 46 Dimanche, 8. novembre 2009 12:23 12
