我正在尝试连续做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:TextView01
和id:TextView03
工作正常,但id:TextView02
适用于id:TextView01
。
我可以使用其他布局,但我想让它从左到右自动居中。
答案 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=0
和layout_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>