作为更大的用户界面的一部分,我有一个RelativeLayout
有三个视图,我希望宽度相同。这三个视图像这样“堆叠”在一起。
ImageView
TextView
ImageView
我尝试了各种各样的事情,例如将View
s'android:layout_width
设置为“wrap_content”,将android:layout_width
设置为“0px”,将android:layout_weight
设置为“1”正如this answer所建议的那样,将View
置于LinearLayout
但没有成功。
如何让这三个视图的宽度相同?
布局xml的相关部分:
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="0px"
android:layout_weight="1">
<ImageView
android:layout_above="@string/window_text"
android:layout_below="@string/eighteen_id"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:paddingTop="5dp"
android:layout_alignParentRight="true"
android:paddingBottom="5dp"
android:src="@drawable/line1"
android:id="@string/line_1_id"/>
<TextView
android:layout_above="@string/line_2_id"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:gravity="right"
android:layout_centerVertical="true"
android:textColor="#000000"
android:id="@string/window_text"/>
<ImageView
android:layout_above="@string/top_row_id"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_alignParentRight="true"
android:paddingTop="5dp"
android:paddingBottom="10dp"
android:src="@drawable/line1"
android:id="@string/line_2_id"/>
</RelativeLayout>
答案 0 :(得分:21)
这很简单,见下文。 “魔术”很简单。将父级设置为wrap_content,将子视图设置为填充父级。然后,较小的子视图始终设置为最大子视图的大小。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:id="@+id/bottom_row"
android:orientation="vertical"
android:layout_alignParentBottom="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/view1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="123" />
<Button
android:id="@+id/view2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="more text" />
<Button
android:id="@+id/view3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="even more text" />
</LinearLayout>
</RelativeLayout>
答案 1 :(得分:1)
您是否尝试为两个图像视图设置android:layout_width =“fill_parent”,就像您为TextView设置它一样?如果你希望三个视图是最宽的宽度,你可以将所有三个视图包含在一个具有android:layout_width =“wrap_content”的LinearLayout中。
答案 2 :(得分:0)
您可以通过在ImageView中设置android:scaleType =“”来获取图像视图以填充父宽度,但如果文本没有填满屏幕宽度,并且您希望图像宽度与文本宽度完全匹配,则必须通过获取文本视图宽度然后将imageview的宽度设置为编程来以编程方式执行此操作。