RelativeLayout,Include和layout_alignParentBottom不起作用

时间:2011-06-09 19:52:43

标签: android xml user-interface

如何让我的包含完全位于屏幕的末尾?当他到达内容的末尾时。

<!-- language: lang-xml -->
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent">
    <ScrollView android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:background="#f6ba79"
        android:orientation="vertical" android:id="@+id/layout">
        <LinearLayout android:id="@+id/linearLayout2"
            android:orientation="vertical" android:layout_width="fill_parent"
            android:layout_height="fill_parent" android:background="@drawable/preferences_background">
            <include android:id="@+id/include1" android:layout_width="fill_parent"
                layout="@layout/top" android:layout_height="wrap_content"></include>
            <LinearLayout android:layout_width="fill_parent"
                android:gravity="center" android:id="@+id/linearLayout1"
                android:layout_height="wrap_content">
                <LinearLayout android:orientation="vertical"
                    android:layout_width="270dp" android:id="@+id/body"
                    android:layout_height="wrap_content" android:focusableInTouchMode="true">
                    <ImageView android:src="@drawable/preferences"
                        style="@style/Theme.Connector.ImageElement" android:layout_width="wrap_content"
                        android:id="@+id/title" android:layout_height="wrap_content"></ImageView>
                    <Spinner android:layout_width="fill_parent"
                        style="@style/Theme.Connector.WelcomeSpinner"
                        android:layout_weight="1" android:id="@+id/spinner_isp"
                        android:layout_height="wrap_content" />
                    <EditText android:singleLine="true" android:hint="@string/txt_user"
                        android:layout_height="wrap_content" android:layout_width="fill_parent"
                        android:id="@+id/edit_user" style="@style/Theme.Connector.PreferencesInput" />
                    <EditText android:singleLine="true" android:hint="@string/txt_password"
                        android:layout_height="wrap_content" android:layout_width="fill_parent"
                        android:id="@+id/edit_password" android:password="true"
                        style="@style/Theme.Connector.PreferencesInput" />
                    <LinearLayout android:orientation="vertical"
                        android:layout_width="fill_parent" android:id="@+id/frm_action"
                        android:layout_height="fill_parent" android:baselineAligned="false">
                        <Button android:text="@string/btn_save"
                            android:layout_weight="0" android:layout_width="130dp"
                            android:layout_height="wrap_content" style="@style/Theme.Connector.Button"
                            android:layout_gravity="center" android:id="@+id/btn_save"></Button>
                    </LinearLayout>
                </LinearLayout>
            </LinearLayout>
        </LinearLayout>
    </ScrollView>
        <include android:id="@+id/include1" android:layout_width="fill_parent"
            layout="@layout/menu" android:layout_height="wrap_content" android:layout_alignParentBottom="true"></include>
</RelativeLayout>

Device Screen Capture

1 个答案:

答案 0 :(得分:4)

问题是你的ScrollerView有一个layout_height =“fill_parent”。 RelativeLayout将使该视图填满整个空间。

在您的情况下,LinearLayout可以更好地工作:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="#f6ba79"
        android:orientation="vertical"
        android:id="@+id/layout">

        ...

    </ScrollView>
    <include
        android:id="@+id/include1"
        android:layout_width="fill_parent"
        layout="@layout/menu"
        android:layout_height="wrap_content" />
</LinearLayout>

此处的关键是将ScrollerView的高度设置为0dp,将权重设置为1(或任何数字)。然后,LinearLayout将拉伸ScrollerView以填充视图,并仍然为底部的@layout/menu腾出空间。