4

我的RelativeLayout 包含几个不同高度的ImageView/TextView 控件,例如20、70、35。这些控件排列成一排。我希望他们将它们的高度扩展到与最大控件高度相同的值,例如 70。问题是,在我的布局中,RelativeLayout 容器和所有控件都扩展到了屏幕高度。

    <RelativeLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        >

        <ImageView 
            android:src="@drawable/image1" 
            android:background="#FFCCDDEE"
            android:layout_width="wrap_content" 
            android:layout_height="fill_parent"
            android:layout_centerVertical="true"
            android:layout_alignParentLeft="true"
            />

        <ImageView 
            android:src="@drawable/image2" 
            android:background="#FFCCDDEE"
            android:layout_width="wrap_content" 
            android:layout_height="fill_parent"
            android:layout_centerVertical="true"
            android:layout_centerInParent="true"
            />

        <ImageView 
            android:src="@drawable/image3" 
            android:background="#FFCCDDEE"
            android:layout_width="wrap_content" 
            android:layout_height="fill_parent"
            android:layout_centerVertical="true"
            android:layout_alignParentRight="true"
            />

    </RelativeLayout>

我可以将 RelativeLayout 高度设置为 70,但考虑到我不知道子控件的大小。

我也可以使用 LinearLayout 达到预期的效果,但想使用 RelativeLayout。

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        >

        <ImageView 
            android:src="@drawable/image1" 
            android:background="#FFCCDDEE"
            android:layout_width="wrap_content" 
            android:layout_height="fill_parent"
            android:gravity="center_vertical"
            />

        <ImageView 
            android:src="@drawable/image2" 
            android:layout_width="wrap_content" 
            android:layout_height="fill_parent"
            android:gravity="center_vertical"
            />

        <ImageView 
            android:src="@drawable/image3" 
            android:layout_width="wrap_content" 
            android:layout_height="fill_parent"
            android:gravity="center_vertical"
            />

    </LinearLayout>

有任何想法吗?

4

1 回答 1

0

您是否考虑过使用填充/边距?

<RelativeLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >

    <ImageView 
        android:src="@drawable/image1" 
        android:background="#FFCCDDEE"
        android:layout_width="wrap_content" 
        android:layout_height="fill_parent"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:padding="70dip"
        />
    ....

该 XML 应该生成一个 140 x 140 的图像(我认为)。它不会是动态的,但 XML 不能做这样的动态事情。

如果您想做一些更动态的事情,您可以编写代码来拉动所有元素的大小,找到最大的,然后将所有对象设置为该大小。

链接可能对此有用。

祝你好运!

于 2011-12-29T23:48:17.803 回答