Oto mój kod układu;
<?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>
To, jak to wygląda, znajduje się po lewej stronie, a to, co chcę, aby wyglądało, jest po prawej stronie.
Oczywistą odpowiedzią jest ustawienie TextView na fill_parent na wysokości, ale nie powoduje to pozostawienia miejsca dla przycisku lub pola wprowadzania.
Zasadniczo problem polega na tym, że chcę, aby przycisk wysyłania i wpis tekstu miały stałą wysokość u dołu, a widok tekstu wypełniał resztę miejsca. Podobnie w poziomym układzie liniowym chcę, aby przycisk wysyłania zawinął jego zawartość i aby wpis tekstu wypełnił resztę miejsca.
Jeśli polecenie pierwszemu elementowi w układzie liniowym zostanie wypełnione, to robi to dokładnie, nie pozostawiając miejsca na inne elementy. Jak uzyskać element, który jako pierwszy ma układ liniowy, aby wypełnić całą przestrzeń oprócz minimum wymaganego przez pozostałe elementy w układzie?
Względne układy były rzeczywiście odpowiedzią:
<?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>