Cela semble simple, mais je ne sais pas comment le faire. J'ai une disposition horizontale avec un EditText et deux ImageButtons. Je souhaite que les ImageButtons aient une taille fixe et que EditText occupe l'espace restant dans la mise en page. Comment cela peut-il être accompli?
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</EditText>
<ImageButton
android:src="@drawable/img1"
android:layout_width="50dip"
android:layout_height="50dip">
</ImageButton>
<ImageButton
android:src="@drawable/img2"
android:layout_width="50dip"
android:layout_height="50dip">
</ImageButton>
</LinearLayout>
Si vous souhaitez conserver la même mise en page (c'est-à-dire les boutons après le texte), utilisez la
layout_weight
propriété, avecfill_parent
, ainsi:Donner le
EditText
«poids» le fait passer en dernier et donne la priorité aux boutons. Jouez avec les différents layout_weights et voyez à quel point vous pouvez vous amuser!la source
D'accord:
Les points clés de la mise en page sont:
fill_parent
plus tard dans le fichier, il ne prend en compte que l'espace restant, pas tout l'espace qu'il pourrait éventuellement occuper si rien d'autre n'était làfill_parent
(match_parent
en 2.2+) afin qu'il occupe le reste de l'espace disponibleDésolé, vous n'avez pas suffisamment lu votre question. Le code ci-dessus fournit la réponse si vous souhaitez le faire de manière verticale. Pour une mise en page horizontale, le code publié par @Sunil devrait fonctionner.
la source
Utilisez pour régler
layout_width
oulayout_height
sur0dp
(selon l'orientation que vous souhaitez remplir l'espace restant). Utilisez ensuite lelayout_weight
pour remplir l'espace restant.la source