2010-09-29 7 views
0

J'ai 4 boutons dans une disposition linéaire horizontale. Je voudrais que le bord droit du 4ème bouton s'aligne avec le bord droit de la disposition linéaire (égale à la largeur de l'écran) J'ai essayé d'utiliser android: layout_gravity = "right" mais cela ne fonctionne pas - le bon bouton est à la droite du 3ème mais pas aligné à droite. Est-ce que je manque quelque chose d'évident?android: l'effet layout_gravity dans main.xml?

main.xml avec seulement la mise en page pertinente params seulement est:

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 
    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 
     <Button 
      android:layout_height="fill_parent" 
      android:layout_width="wrap_content"> 
     <Button SAME LAYOUT AS BUTTON 1> 
     <Button SAME LAYOUT AS BUTTON 1> 

     <Button 
      android:layout_height="fill_parent" 
      android:layout_width="wrap_content" 
      android:layout_gravity="right" /> 
    </LinearLayout> 
</LinearLayout> 

Cela ne semble pas correspondre au comportement indiqué pour layout_gravity dans la référence SDK: "Définit comment placer la vue, à la fois son axe x et y, dans son groupe de vues parent. "

Répondre

3

Je sais que ce n'est pas vraiment la bonne réponse à votre question, mais vous devriez vraiment envisager d'utiliser RelativeLayout au lieu de LinearLayout. Il s'adapte mieux aux différentes résolutions d'écran du téléphone, et vous pouvez placer les boutons dans le bon ordre en utilisant les attributs layout_toRightOf et layout_alignParentRight dans votre XML (ou layout_above, layout_alignParentTop, etc.). L'utilisation de la gravité dans une disposition linéaire ne se comportera pas vraiment comme prévu, car Android essaie toujours de placer les widgets dans une position fixe. RelativeLayout est un peu plus pénible à travailler que LinearLayout, mais ça en vaut la peine et c'est aussi celui que Google recommande d'utiliser. Une fois que vous avez compris, ils sont très pratiques à travailler.

+0

Refusé pour une grande justice! – benvd

+0

Merci Nik. Je pense qu'il semble y avoir plus de possibilités de contrôle avec RelativeLayout. Les boutons sautent encore un peu, mais je vais persévérer! – NickT

+1

@NickT, maintenez-le, et assurez-vous de définir le layout_align * sur chaque contrôle pour les aligner correctement. Plus d'infos sur les astuces RelativeLayout ici: http://www.nikreiman.com/2010/09/android-relativelayout-ninja-fu-or-how.html –

Questions connexes