RelativeLayout的高度不会缩小

时间:2010-05-11 15:31:43

标签: android relativelayout

在下面的布局中使用它时,我不能让我的相对layuot视图缩小,用作对话框。 在下面的示例中,如果实际内容不多,则scrollview会一直展开以填充整个对话框,看起来非常难看。

我尝试过大多数fill_parent,wrap_content等组合但没有成功。

问题似乎是将按钮设置为“align_bottom”将导致对话框填充其高度。但是如果我改变顺序并且必须将按钮放在滚动视图下面,那么如果显示很多内容,该按钮将不可见...

解决方法(我认为这是一个非常难看的解决方案)是在滚动视图上设置边距底部,然后在按钮上设置相同的负边距顶部。但我不确定这将如何看待不同的显示器。

请帮助/ Rudas

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <ScrollView
        android:id="@+id/ScrollView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/dialogCloseButton"
        android:layout_alignParentTop="true" >

        <LinearLayout
            android:id="@+id/dialogContent"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:paddingBottom="10dp" >

            <TextView
                android:id="@+id/TextView01"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
            </TextView>
        </LinearLayout>
    </ScrollView>

    <Button
        android:id="@+id/dialogCloseButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:text="Close" >
    </Button>

</RelativeLayout><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <ScrollView
        android:id="@+id/ScrollView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/dialogCloseButton"
        android:layout_alignParentTop="true" >

        <LinearLayout
            android:id="@+id/dialogContent"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:paddingBottom="10dp" >

            <TextView
                android:id="@+id/TextView01"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
            </TextView>
        </LinearLayout>
    </ScrollView>

    <Button
        android:id="@+id/dialogCloseButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:text="Close" >
    </Button>

</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

ScrollView是FrameLayout的特殊类型。这意味着它将始终从父布局的左上角开始。效果与其他视图重叠,RelativeLayout设置无效。解决方案是将StrollView放在单独的布局中(例如LinearLayout)。