Hier ist mein Layout-Code;
<?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>
Auf der linken Seite sehen Sie, wie es aussieht, und auf der rechten Seite, wie ich es haben möchte.
Die offensichtliche Antwort ist, die TextView auf fill_parent on height zu setzen, aber das führt dazu, dass kein Platz mehr für die Schaltfläche oder das Eingabefeld bleibt.
Im Wesentlichen geht es darum, dass ich möchte, dass die Schaltfläche "Senden" und der Texteintrag eine feste Höhe am unteren Rand haben und die Textansicht den restlichen Platz ausfüllt. In ähnlicher Weise in der horizontalen linearen Layout möchte ich die Schaltfläche "Senden", um seinen Inhalt zu umbrechen und für den Texteintrag, um den Rest des Raumes zu füllen.
Wenn das erste Element in einem linearen Layout die Anweisung fill_parent erhält, tut es genau das und lässt keinen Platz für andere Elemente. Wie bringe ich ein Objekt, das das erste in einem linearen Layout ist, dazu, den gesamten Platz zu füllen, abgesehen von dem Minimum, das die übrigen Objekte im Layout benötigen?
Relative Layouts waren tatsächlich 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>