2014-07-22 1 views
0

J'essaie de faire la mise en page suivante pour un élément de liste dans ListView. Idéalement je voudrais une disposition avec 5 vues de texte arrangées comme suit: Fondamentalement dans la rangée supérieure je veux que deux TextViews à chaque extrémité soient fixes la largeur tandis que les deux autres partagent également l'espace restant. J'ai trouvé des suggestions sur la manière de faire remplir un espace par un textview, mais rien sur la façon dont deux textviews peuvent diviser l'espace de manière égale. L'ensemble résultant de cinq TextViews doit remplir l'élément de mise en page2 TextViews remplir l'espace restant de façon égale

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:padding="6dip"> 

    <TextView 
     android:id = "@+id/s1" 
     android:layout_width="50dip" 
     android:layout_height = "50dip" 
     android:text="what" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
    android:gravity="left" 
     /> 
    <TextView 
     android:id = "@+id/t1" 
     android:layout_width="fill_parent" 
     android:layout_height = "50dip" 
     android:layout_toRightOf="@id/s1" 
     android:text="why" 
     android:layout_alignParentTop="true" 
     /> 
    <TextView 
     android:id = "@+id/t2" 
     android:layout_width="fill_parent" 
     android:layout_height = "50dip" 
     android:layout_toRightOf="@id/t1" 
     android:text="why" 
     android:layout_alignParentTop="true" 
     /> 
    <TextView 
     android:id = "@+id/s2" 
     android:layout_width="50dip" 
     android:layout_height = "50dip" 
     android:layout_toRightOf="@id/t2" 
     android:text="what" 
     android:gravity="right" 
     android:layout_alignParentTop="true" 

     /> 
    <TextView 
     android:id = "@+id/bottom" 
     android:layout_width="fill_parent" 
     android:layout_height = "wrap_content" 
     android:layout_below="@id/s1" 
     android:text="what" 
     android:gravity="center" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 

     /> 
    </RelativeLayout> 
+0

est-ce que votre '' s1' et des vues s2' toujours avoir une largeur statique (50dip) Si oui - il sera possible de réaliser ce dont vous avez besoin avec seulement 'RelativeLayout' avec des' LinearLayout 'supplémentaires :) –

+0

LinearLayout avec des poids – zgc7009

+0

Pouvez-vous dessiner quelque chose pour donner une idée de ce que vous voulez dire? C'est un peu difficile à comprendre en lisant. Une image serait vraiment utile –

Répondre

0

Remplacer parent RelativeLayout avec LinearLayout (ou si vous ne pouvez pas ajouter LinearLayout supplémentaire et mettre tous TextViews en elle puis ajouter android:layout_weight="1" à tous TextViews vous voulez occuper égale . portion de l'espace restant

+0

Cela ne fera rien sur un RelativeLayout –

+0

C'est correct. Je n'ai pas vérifié le type de mise en page racine, corrigé –

0

Essayez cette

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:padding="6dip"> 

<TextView 
    android:id = "@+id/s1" 
    android:layout_width="50dip" 
    android:layout_height = "50dip" 
    android:text="what" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:gravity="left" /> 

<TextView 
    android:id = "@+id/s2" 
    android:layout_width="50dip" 
    android:layout_height = "50dip" 
    android:text="what" 
    android:gravity="right" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentRight="true"/> 

<LinearLayout 
    android:layout_height="50dip" 
    android:layout_width="match_parent" 
    android:layout_toRightOf="@id/s1" 
    android:layout_toLeftOf="@id/s2" 
    android:layout_alignParentTop="true" 
    android:orientation="horizontal" > 

    <TextView 
     android:id = "@+id/t1" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     android:layout_height = "match_parent" 
     android:text="why"/> 

    <TextView 
     android:id = "@+id/t2" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     android:layout_height = "match_parent" 
     android:text="why" /> 

</LinearLayout> 

<TextView 
    android:id = "@+id/bottom" 
    android:layout_width="fill_parent" 
    android:layout_height = "wrap_content" 
    android:layout_below="@id/s1" 
    android:text="what" 
    android:gravity="center" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" /> 
</RelativeLayout> 
Questions connexes