Esto parece sencillo, pero no sé cómo hacerlo. Tengo un diseño horizontal con un EditText y dos ImageButtons. Quiero que ImageButtons sea de un tamaño fijo y que EditText ocupe el espacio restante en el diseño. ¿Cómo se puede lograr esto?
<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>
android
android-layout
ab11
fuente
fuente
Si desea mantener el diseño igual (es decir, botones después del texto), use la
layout_weight
propiedad, junto confill_parent
, así:<LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <EditText android:layout_weight="1" android:layout_width="fill_parent" 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>
Dar el
EditText
"peso" hace que se descubra el último y da prioridad a los botones. ¡Juega con los diferentes layout_weights y descubre cuánto te puedes divertir!fuente
Bueno:
<RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content"> <ImageButton android:id="@+id/button1" android:src="@drawable/img1" android:layout_width="50dip" android:layout_alignParentTop="true" android:layout_height="50dip"> </ImageButton> <ImageButton android:src="@drawable/img2" android:layout_width="50dip" android:layout_alignParentTop="true" android:layout_toRightOf="@id/button1" android:layout_height="50dip"> </ImageButton> <EditText android:layout_below="@id/button" android:layout_width="wrap_content" android:layout_height="fill_parent"> </EditText> </RelativeLayout>
Los puntos clave del diseño son:
fill_parent
más adelante en el archivo, solo tiene en cuenta el espacio restante, no todo el espacio que podría ocupar si no había nada más allífill_parent
(match_parent
en 2.2+) para que ocupe el resto del espacio disponibleLo siento, no leí tu pregunta lo suficiente. El código anterior proporciona la respuesta si desea hacerlo de forma vertical. Para un diseño horizontal, el código publicado por @Sunil debería funcionar.
fuente
Use establecer
layout_width
olayout_height
en0dp
(Por la orientación que desea llenar el espacio restante). Luego use ellayout_weight
para llenar el espacio restante.fuente