Hier ist mein Layoutcode;
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:text="@string/welcome"
android:id="@+id/TextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</TextView>
<LinearLayout android:id="@+id/LinearLayout"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="bottom">
<EditText android:id="@+id/EditText"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</EditText>
<Button android:text="@string/label_submit_button"
android:id="@+id/Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
</LinearLayout>
</LinearLayout>
Wie das aussieht, ist links und wie es aussehen soll, ist rechts.
Die offensichtliche Antwort besteht darin, die Textansicht in der Höhe auf fill_parent zu setzen. Dadurch bleibt jedoch kein Platz mehr für die Schaltfläche oder das Eingabefeld.
Im Wesentlichen besteht das Problem darin, dass die Schaltfläche "Senden" und die Texteingabe unten eine feste Höhe haben sollen und die Textansicht den Rest des Bereichs ausfüllt. In ähnlicher Weise möchte ich, dass im horizontalen linearen Layout die Schaltfläche "Senden" den Inhalt umschließt und die Texteingabe den Rest des Bereichs ausfüllt.
Wenn das erste Element in einem linearen Layout aufgefordert wird, fill_parent auszuführen, wird genau das ausgeführt, sodass kein Platz für andere Elemente bleibt. Wie erhalte ich ein Element, das sich zuerst in einem linearen Layout befindet, um den gesamten Raum bis auf das Minimum auszufüllen, das für die übrigen Elemente im Layout erforderlich ist?
Relative Layouts waren in der Tat die Antwort:
<?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">
<TextView
android:text="@string/welcome"
android:id="@+id/TextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true">
</TextView>
<RelativeLayout
android:id="@+id/InnerRelativeLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" >
<Button
android:text="@string/label_submit_button"
android:id="@+id/Button"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
<EditText
android:id="@+id/EditText"
android:layout_width="fill_parent"
android:layout_toLeftOf="@id/Button"
android:layout_height="wrap_content">
</EditText>
</RelativeLayout>
</RelativeLayout>