2011-04-07 6 views
1

Je suis très nouveau dans le développement Android et j'essaie de comprendre comment utiliser la balise RelativeLayout pour positionner mes vues. Mon objectif est d'avoir un gros TextView sur la gauche, avec deux ButtonViews à droite, empilés les uns sur les autres. Voici le code XML que j'utilise:Android RelativeLayout

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/main_layout" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:background="@drawable/wood_tile"> 
     <TextView 
      android:id="@+id/life_counter" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="00" /> 
     <Button android:text="@string/button_up" 
      android:id="@+id/button_up" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_toRightOf="@id/life_counter"/> 
     <Button android:text="@string/button_down" 
      android:id="@+id/button_down" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/button_up"/> 
    </RelativeLayout> 

Je pense que je ne dois pas utiliser le tag correctement. Quelqu'un peut-il expliquer comment cela fonctionne? Merci d'avance.

Répondre

2

La largeur de TextView de gauche est définie sur fill_parent, ce qui signifie qu'elle utilise l'intégralité de l'écran. Tout ce qui est placé à sa droite sera hors écran. Utilisez wrap_content ou une largeur spécifique pour les éléments dans la disposition relative.

Votre approche est également un peu off. Si vous voulez que les deux boutons alignés à la droite de l'écran, utilisez ceci:

<RelativeLayout 
    android:id="@+id/main_layout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <TextView 
     android:id="@+id/life_counter" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="00" /> 

    <Button android:text="Button Up" 
     android:id="@+id/button_up" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true"/> 

    <Button android:text="Button Down" 
     android:id="@+id/button_down" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_below="@+id/button_up"/> 
</RelativeLayout> 
+0

Merci, maintenant toutes les vues sont visibles! En ce qui concerne votre deuxième partie, ce que je veux vraiment faire, c'est centrer les trois, ne pas les aligner respectivement à gauche et à droite. Je vais devoir comprendre comment faire cela aussi. – nathan

+1

Pour les centrer, vous devez les placer dans un RelativeLayout imbriqué qui a l'attribut 'android: layout_centerInParent =" true' Voir [cette solution] (http://stackoverflow.com/questions/1499258/can-we-put -layout-in-center-of-the-screen-in-android/1501534 # 1501534) –

+0

Belle, ça vient tout seul, merci pour votre aide! – nathan