与RelativeLayout中的最大元素对齐

时间:2014-06-30 23:57:24

标签: android android-layout relativelayout

我使用RelativeLayout设计一个简单的布局,我想避免嵌套的LinearLayouts或其他嵌套的视图组。
有9个视图,它们都显示如下:

enter image description here

我不知道如何正确对齐搜索栏以避免文字重叠或包裹线条 从右边对齐:rgb图像宽度是固定的,搜索栏宽度(全部相同)取决于标签宽度,我希望它依赖于最大的一个。
如何通过android:layout_toRightOf或什么来了解要引用的标签?

上图还显示了我想避免的两种行为:
- 对齐是指第一个标签(@ id / text1) -
第2行:android:layout_alignRight缺少文本重叠。
第3行:android:layout_alignRight存在,但文本包装更长。

这就是我想要的:

enter image description here

我应该测量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>   

0 个答案:

没有答案