2014-07-22 128 views
0

我想在ListView中为列表项做下列布局。理想情况下,我想要一个包含5个文本视图的布局,其排列方式如下: 基本上在上面的一行中,我希望每个末端的两个TextViews是固定宽度,而另外两个文本视图同样分割剩余空间。我已经找到了关于如何使一个textview填充剩余空间的建议,但没有关于两个textview如何均匀分割空间的建议。所得的五个TextViews组应填写版面项目2 TextViews平均填充剩余空间

<?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

贵's1'和's2'意见总是有静态的宽度(50dip)如果是 - ?这将是使用任何额外的'LinearLayout's只需要'RelativeLayout'就可以实现你所需要的:) –

+0

带权重的LinearLayout – zgc7009

+0

你可以画一些东西来表达你的意思吗?通过阅读有点难以理解。一个图像将会非常有用 –

回答

0

LinearLayout替换父RelativeLayout(或者,如果你不能添加额外的LinearLayout,并把所有TextViews进去再加入android:layout_weight="1"所有TextViews要占据等于。剩余空间的一部分

+0

这对RelativeLayout没有任何作用 –

+0

这是正确的。我没有检查根布局的类型,更正 –

0

试试这个

<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>