Voici mon code de mise en page;
<?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>
À quoi cela ressemble est à gauche et à quoi je veux ressembler est à droite.
La réponse évidente consiste à définir TextView sur fill_parent sur la hauteur, mais cela ne laisse aucune place au bouton ou au champ de saisie.
Essentiellement, le problème est que je veux que le bouton de soumission et l'entrée de texte soient à une hauteur fixe en bas et que la vue de texte remplisse le reste de l'espace. De même, dans la disposition linéaire horizontale, je veux que le bouton Soumettre enveloppe son contenu et que l'entrée de texte remplisse le reste de l'espace.
Si le premier élément d'une disposition linéaire est dit à fill_parent, il fait exactement cela, ne laissant aucune place aux autres éléments. Comment puis-je obtenir un élément qui est le premier dans une mise en page linéaire pour remplir tout l'espace en dehors du minimum requis par le reste des éléments de la mise en page?
Les dispositions relatives étaient en effet la réponse:
<?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>