Ini kode tata letak saya;
<?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>
Seperti apa ini di sebelah kiri dan apa yang saya inginkan di sebelah kanan.
Jawaban yang jelas adalah untuk mengatur TextView ke fill_parent pada ketinggian, tetapi ini menyebabkan tidak ada ruang yang tersisa untuk tombol atau bidang entri.
Pada dasarnya masalahnya adalah bahwa saya ingin tombol kirim dan entri teks menjadi ketinggian tetap di bagian bawah dan tampilan teks untuk mengisi sisa ruang. Demikian pula, dalam tata letak linier horizontal saya ingin tombol kirim untuk membungkus kontennya dan untuk entri teks untuk mengisi sisa ruang.
Jika item pertama dalam tata letak linier diperintahkan untuk fill_parent itu melakukan hal itu, tidak meninggalkan ruang untuk item lain. Bagaimana cara mendapatkan item yang pertama dalam tata letak linier untuk mengisi semua ruang selain dari minimum yang diperlukan oleh sisa item dalam tata letak?
Layout relatif memang jawabannya:
<?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>