2011-05-07 9 views
2

dans android je m essayant de faire une forme simple avec deux boutons .. mais je suis confronté à un problème d'alignement. pouvez-vous s'il vous plaît aider dans ce ..problème de conception de mise en page

ici est le code

<?xml version="1.0" encoding="utf-8"?> 
<TableLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:stretchColumns = "1" 
    > 
    <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content"> 
     <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="UserName"></TextView> 
     <EditText android:text="EditText" android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content"></EditText> 
    </TableRow> 
    <TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content"> 
     <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Password"></TextView> 
     <EditText android:text="EditText" android:id="@+id/editText2" android:layout_width="wrap_content" android:layout_height="wrap_content"></EditText> 
    </TableRow> 
    <TableRow android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="wrap_content"> 
     <Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/button1" android:text="save"></Button> 
     <Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/button2" android:text="cancel"></Button> 
    </TableRow> 
</TableLayout> 

enter image description here

avec ce code, je reçois l'interface utilisateur comme ça, mais je veux que les boutons soient alignés, s'il vous plaît aidez-moi

Répondre

5

Déplacez les boutons hors de la disposition de table et dans un LinearLayout?

<LinearLayout android:id="@+id/buttons" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
     <Button 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:id="@+id/button1" 
      android:text="save" 
      android:layout_weight="1"/> 
     <Button 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:id="@+id/button2" 
      android:text="cancel" 
      android:layout_weight="1"/> 
    </LinearLayout> 

Vous pourriez avoir à mettre la table et la LinearLayout dans une LinearLayout verticale et des poids fixés sur eux.

+0

@damon, Merci cela a fonctionné pour moi Merci beaucoup, dernière chose, que fait "Layout_weight"? il ne reflète aucun changement dans mon code si je donne une valeur autre que 1 – Naruto

+0

Cela lui donne un poids relatif au composant par rapport aux autres. Par exemple, si vous avez donné à l'un des boutons un poids de 2, il recevrait les deux tiers de l'espace, alors que l'autre (avec un poids de 1) recevrait un tiers de l'espace. – dmon

+1

Plus précisément, le poids est utilisé pour distribuer tout espace * restant * après que tous les enfants dans un LinearLayout ont été mesurés en utilisant les spécificateurs de largeur ou de hauteur habituels. C'est pourquoi dans de nombreux exemples, vous verrez une largeur ou une hauteur (qui dépend de l'orientation de LinearLayout) définie sur "0dip" avec un poids - cela indique à LinearLayout de n'utiliser que le poids lors de la mesure. Si vous voulez que deux éléments obtiennent exactement 50% de l'espace disponible, vous devez utiliser cette méthode. – adamp