如何将一个布局组件的高度设置为另一个组件的相同高度?

时间:2011-01-13 20:11:46

标签: android height android-layout

如何将一个布局组件高度设置为与另一个组件相同: 例: 我可以设置android:layout_height =“@ + id / info_box.height”或做类似的事情吗?

我希望ImageView的高度与我的LinearLayout

的高度相匹配
ImageView android:id="@+id/border"
  android:src="@drawable/frame"
android:layout_below="@+id/title"
android:layout_width="fill_parent"
android:layout_height="????"    
android:scaleType="fitXY" 
android:drawingCacheQuality="auto"
/>

<LinearLayout
android:id="@+id/info_box"
android:orientation="vertical"
android:layout_below="@+id/title"
android:background="@layout/my_bg"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
... other stuff . .
 </LinearLayout>

2 个答案:

答案 0 :(得分:4)

实现此目的的唯一方法是让两个视图成为同一容器的一部分。 LinearLayout或RelativeLayout通常非常适合这种情况。您也可以通过代码实现这一目标。

答案 1 :(得分:1)

您可以使用android:layout_weight

将两个视图(border和info_box)与fill_parent和相同的值layout_weight放在同一个LinearLayout中,其中orientation = verticale。

使用这种技术,border和info_box将具有相同的高度。

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/border"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@+id/title"
        android:layout_weight="2"
        android:drawingCacheQuality="auto"
        android:scaleType="fitXY"
        android:src="@drawable/frame" />

    <LinearLayout
        android:id="@+id/info_box"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@+id/title"
        android:layout_weight="2"
        android:background="@layout/my_bg"
        android:orientation="vertical" >

        ... other stuff . .

    </LinearLayout>

</LinearLayout>