使用layout_marginBottom意外的效果

时间:2012-11-16 18:51:18

标签: android layout

我希望当我设置边距底部,这使得视图的一部分离开屏幕/不可见时,整个布局转移到顶部,看起来“相同” - 意味着,不是重新安排内部视图

但是当我设置边距时,在这个简化的示例中,容器缩小或内部布局移动到底部。以下是图片说明:

在设定保证金之前:

enter image description here

设置200dip保证金底部后:

enter image description here

这是XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="400dip"
        android:background="#ff0000"
        android:gravity="center"
        android:layout_marginBottom="200dip"
        >

        <View 
            android:layout_width="fill_parent"
            android:layout_height="200dip"
            android:background="#00ff00"
            />

    </LinearLayout>

    <Button
        android:id="test"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        android:text="@string/hello_world"
        tools:context=".MainActivity" />


</RelativeLayout>

我该怎么做才能避免这种情况?

1 个答案:

答案 0 :(得分:0)

要实现这一点,请尝试在您想要移动的视图上设置负上边距。

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="400dip"
        android:background="#ff0000"
        android:gravity="center"
        android:layout_marginTop="-200dip"
        >