顶部和底部布局无法按预期工作

时间:2014-03-29 09:44:47

标签: android android-layout

我在垂直方向LinearLayout中有两个视图,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical">

    <RelativeLayout
            android:id="@+id/top"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

        <Button
                android:text="dddd"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>
    </RelativeLayout>

    <RelativeLayout
            android:id="@+id/below"
            android:layout_below="@id/top"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

        <TextView
                android:layout_alignParentRight="true"
                android:layout_alignParentBottom="true"
                android:background="#33000000"
                android:textColor="#80000000"
                android:id="@+id/copy_right"
                android:text="Copyright @2013"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
    </RelativeLayout>
</LinearLayout>

虽然我希望bottom视图的高度为wrap_content,但top占用了所有剩余空间。

但它不起作用。

有什么问题?有人可以帮我解决吗?


顺便说一下,这是一种替代方法:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical">

    <RelativeLayout
            android:id="@+id/top"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1">

        <Button
                android:text="dddd"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>
    </RelativeLayout>

    <RelativeLayout
            android:id="@+id/below"
            android:layout_width="wrap_content"
            android:layout_height="40dp"
            android:layout_weight="0">

        <TextView
                android:layout_alignParentRight="true"
                android:layout_alignParentBottom="true"
                android:background="#33000000"
                android:textColor="#80000000"
                android:id="@+id/copy_right"
                android:text="Copyright @2013"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
    </RelativeLayout>
</LinearLayout>

符合我的要求,但我不希望以固定的高度制作bottom视图。

2 个答案:

答案 0 :(得分:1)

尝试这种简化的布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <TextView
        android:id="@+id/copy_right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true"
        android:background="#33000000"
        android:textColor="#80000000"
        android:text="Copyright @2013"
    />
    <RelativeLayout
        android:id="@+id/top"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@id/copy_right"
        android:layout_alignParentTop="true"
        >
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="dddd"
        />
    </RelativeLayout>
</RelativeLayout>

答案 1 :(得分:1)

您好,您可以在顶部布局上设置重量

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#fff"
    android:orientation="vertical" >

    <RelativeLayout
        android:id="@+id/top"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="top|center_horizontal"
            android:text="dddd"
            android:textColor="#000" />
    </RelativeLayout>

    <LinearLayout
        android:id="@+id/below"
        android:layout_width="match_parent"
        android:gravity="right"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/copy_right"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#33000000"
            android:text="Copyright @2013"
            android:textColor="#80000000" />
    </LinearLayout>
</LinearLayout>