2 Stimmen

RelativeLayout, Include und layout_alignParentBottom funktionieren nicht

Wie lasse ich mein Include genau am Ende des Bildschirms? Zu dem Zeitpunkt, zu dem er das Ende des Inhalts erreicht.

<!-- 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

4voto

Steve Prentice Punkte 22404

Das Problem ist, dass Ihre ScrollerView ein layout_height="fill_parent" hat. RelativeLayout macht diese Ansicht füllen den gesamten Raum.

Ein LinearLayout wird in Ihrem Fall besser funktionieren:

<?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>

Der Schlüssel dazu ist, die Höhe der ScrollerView eingestellt auf 0dp und das Gewicht wird auf 1 (oder eine beliebige Zahl). LinearLayout streckt dann die ScrollerView so, dass sie die Ansicht ausfüllt und noch Platz für die @layout/menu am unteren Rand.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X