三行textView在一行中

时间:2014-08-15 10:57:00

标签: java android xml

我正在尝试连续做3个TextView。我举了一个例子,现在我有:

        <RelativeLayout
            android:id="@+id/relative"
            android:layout_height="wrap_content"  
            android:layout_width="fill_parent"
            android:padding="5dp">
                    <TextView
                        android:id="@+id/TextView01"
                        android:layout_width="wrap_content"
                        android:layout_height="?android:attr/listPreferredItemHeight"
                        android:textColor="#f00"
                        android:text="one" 
                        android:layout_alignParentLeft="true" ></TextView>
                    <TextView
                        android:id="@+id/TextView02"
                        android:layout_width="wrap_content"
                        android:layout_height="?android:attr/listPreferredItemHeight"
                        android:textColor="#f00"
                        android:layout_alignParentLeft="true"
                        android:text="two" ></TextView>
                    <TextView
                        android:id="@+id/TextView03"
                        android:layout_width="wrap_content"
                        android:layout_height="?android:attr/listPreferredItemHeight"
                        android:textColor="#f00"
                        android:text="three" 
                        android:layout_alignParentRight="true"></TextView>
        </RelativeLayout>

我希望左侧为id:TextView01,中间为id:TextView02,右侧为id:TextView03

现在id:TextView01id:TextView03工作正常,但id:TextView02适用于id:TextView01

我可以使用其他布局,但我想让它从左到右自动居中。

4 个答案:

答案 0 :(得分:1)

使用layout_toRightOf

       <RelativeLayout
        android:id="@+id/relative"
        android:layout_height="wrap_content"  
        android:layout_width="fill_parent"
        android:padding="5dp">
                <TextView
                    android:id="@+id/TextView01"
                    android:layout_width="wrap_content"
                    android:layout_height="?android:attr/listPreferredItemHeight"
                    android:textColor="#f00"
                    android:text="one" 
                    android:layout_alignParentLeft="true" ></TextView>
                <TextView
                    android:id="@+id/TextView02"
                    android:layout_width="wrap_content"
                    android:layout_height="?android:attr/listPreferredItemHeight"
                    android:textColor="#f00"
                    android:layout_toRightOf="@id/TextView01"
                    android:text="two" ></TextView>
                <TextView
                    android:id="@+id/TextView03"
                    android:layout_width="wrap_content"
                    android:layout_height="?android:attr/listPreferredItemHeight"
                    android:textColor="#f00"
                    android:layout_toRightOf="@id/TextView02"
                    android:text="three" 
                    ></TextView>
    </RelativeLayout>

LinearLayout类型horizontal

答案 1 :(得分:1)

不要对这种东西使用相对布局。尝试线性布局。

您的代码可以是:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:id="@+id/relative"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp" >

<TextView
    android:id="@+id/TextView01"
    android:layout_width="wrap_content"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:layout_alignParentLeft="true"
    android:layout_weight="1"
    android:text="one"
    android:textColor="#f00" >

</TextView>

<TextView
    android:id="@+id/TextView02"
    android:layout_width="wrap_content"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:layout_alignParentLeft="true"
    android:layout_weight="1"
    android:text="two"
    android:textColor="#f00" >

</TextView>

<TextView
    android:id="@+id/TextView03"
    android:layout_width="wrap_content"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:layout_alignParentRight="true"
    android:layout_weight="1"
    android:text="three"
    android:textColor="#f00" >

</TextView>
</LinearLayout>

答案 2 :(得分:1)

如果您想要的只是一行中的3个文字视图,那么您可以将其中三个放在LinearLayout中,并将layout_width=0layout_weight=1设置为所有3个文字视图

答案 3 :(得分:1)

创建LinearLayout。使文本视图与父级和相等的布局权重相匹配,使其恰好占据行的1/3

<LinearLayout
            android:id="@+id/relative"
            android:layout_height="wrap_content"  
            android:layout_width="fill_parent"
            android:padding="5dp"
            orientation="horizontal">
                    <TextView
                        android:id="@+id/TextView01"
                        android:layout_width="match_parent"
                        android:layout_weight="1"
                        android:layout_height="?android:attr/listPreferredItemHeight"
                        android:textColor="#f00"
                        android:text="one" 
 ></TextView>
                    <TextView
                        android:id="@+id/TextView02"
                        android:layout_width="match_parent"
                        android:layout_weight="1"
                        android:layout_height="?android:attr/listPreferredItemHeight"
                        android:textColor="#f00"
                        android:layout_alignParentLeft="true"
                        android:text="two" ></TextView>
                    <TextView
                        android:id="@+id/TextView03"
                        android:layout_width="match_parent"
                        android:layout_weight="1"
                        android:layout_height="?android:attr/listPreferredItemHeight"
                        android:textColor="#f00"
                        android:text="three" 
                        android:layout_alignParentRight="true"></TextView>
        </LinearLayout>