我使用RelativeLayout设计一个简单的布局,我想避免嵌套的LinearLayouts或其他嵌套的视图组。
有9个视图,它们都显示如下:
我不知道如何正确对齐搜索栏以避免文字重叠或包裹线条
从右边对齐:rgb图像宽度是固定的,搜索栏宽度(全部相同)取决于标签宽度,我希望它依赖于最大的一个。
如何通过android:layout_toRightOf
或什么来了解要引用的标签?
上图还显示了我想避免的两种行为:
- 对齐是指第一个标签(@ id / text1) -
第2行:android:layout_alignRight
缺少文本重叠。
第3行:android:layout_alignRight
存在,但文本包装更长。
这就是我想要的:
我应该测量TextViews宽度以找到最大的宽度(当然是以编程方式......)?
对XML解决方案有什么想法吗?
以下是代码:
<RelativeLayout
android:id="@+id/addon"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@color/semi_transparent_background_controls"
android:visibility="visible" >
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/seek1"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Normal text"/>
<SeekBar
android:id="@+id/seek1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/img1"
android:layout_toRightOf="@id/text1"/>
<ImageView
android:id="@id/img1"
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/img1"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/seek2"
android:layout_alignParentLeft="true"
android:layout_below="@id/img1"
android:text="Longer text overlaps"/>
<SeekBar
android:id="@+id/seek2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@id/seek1"
android:layout_alignParentLeft="false"
android:layout_alignTop="@+id/img2"
android:layout_below="@id/seek1"
android:layout_toLeftOf="@id/img2"/>
<ImageView
android:id="@id/img2"
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/img2"
android:layout_alignParentRight="true"
android:layout_below="@id/img1"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/seek3"
android:layout_alignParentLeft="true"
android:layout_alignRight="@+id/text1"
android:layout_below="@id/img2"
android:text="or wraps to a new line"/>
<SeekBar
android:id="@+id/seek3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@id/seek1"
android:layout_alignParentLeft="false"
android:layout_alignTop="@+id/img3"
android:layout_below="@id/seek2"
android:layout_toLeftOf="@id/img3"/>
<ImageView
android:id="@id/img3"
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/img3"
android:layout_alignParentRight="true"
android:layout_below="@id/img2"
/>
</RelativeLayout>