0

如何设计布局,使其占据相对布局的中心到底部空间。

|--------------------------|
|                          |
|                          |
|                          |
|                          |
|                          |
|--------------------------|
|            |             |
|      this will be        |
|       content            |
|            |             |
|            |             |
|--------------------------|

<RelativeLayout>[another_layout should be here]</RelativeLayout>

所以another_layout将从 RelativeLayout 的中间开始并填充到该布局的底部。

4

3 回答 3

4

您可以将内容包装在线性布局中,该布局将位于您的相对布局内,然后设置 android:layout_alignParentBottom="true"。

于 2013-08-04T21:22:34.207 回答
2
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <!-- Invisible View that will hold the position -->
    <View
        android:id="@+id/stub"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_centerInParent="true"/>

    <!-- Content below -->
    <TextView
        android:layout_below="@id/stub"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="@string/something" />

</RelativeLayout>
于 2013-08-04T21:55:39.773 回答
0

RelativeLayout 是您的顶级元素吗?如果是这样,为什么不使用带有layout_weight参数的 LinearLayout ,然后只制作顶部 a RelativeLayout?这似乎比在您居中的视图下方破解它更合乎逻辑。布局看起来像这样。

<LinearLayout
    xmlns:android="stuff"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <RelativeLayout
        android:layout_height="0dp"
        android:layout_width="match_parent"
        android:layout_weight="1">
        <!-- All the stuff that would have been above the center before -->
    </RelativeLayout>
    <RelativeLayout
        android:layout_height="0dp"
        android:layout_width="match_parent"
        android:layout_weight="1">
        <!-- All the stuff that would have been below the center before -->
    </RelativeLayout>

IMO 这是一个更清洁的解决方案

于 2013-08-04T22:32:10.537 回答