Diseño de dos columnas con la primera columna wrap_content, second fill_parent

Tengo que diseñar IU para contener dos columnas.

La primera columna debe envolver la etiqueta contenida y la segunda en la misma fila debe llenar el espacio entero. A continuación algunos ejemplos:

Http://temp.chrzanowski.info/so_layout.png

Cómo puedo hacer esto ?

Utilice TableLayout con strechColumns = "1"

Se extiende la segunda columna ocupando el espacio restante.

 <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:stretchColumns="1" > <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /> </TableRow> <TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /> </TableRow> <TableRow android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /> </TableRow> </TableLayout> 

Después de TableLayout le daría la salida deseada:

 <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="1"> <TableRow> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Bla bla bla" android:singleLine="true" /> <!-- first column's view --> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" /> <!-- second column's view --> </TableRow> ... </TableLayout> 

Como alternativa, puede hacer un LinearLayout así:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:weightSum="100" android:gravity="center_vertical"> <LinearLayout android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="40"> <TextView android:layout_weight="1" android:layout_width="0dip" android:layout_height="wrap_content" android:text="A very very very long text" android:singleLine="true" android:scrollHorizontally="true" android:ellipsize="end"> </TextView> </LinearLayout> <LinearLayout android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="60"> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="TextBox"> </EditText> </LinearLayout> </LinearLayout> 

Para ajustar el ancho de las columnas, modifique el layout_weight de cada contenedor LinearLayout. Menor valor significa menor ancho, y ambos pesos deben ser iguales a 100.

Prueba esto:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Label 1" android:layout_marginLeft="7dp" android:layout_marginTop="20dp"/> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Label Loooong2" android:layout_marginLeft="7dp" android:layout_marginTop="30dp"/> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Label 3" android:layout_marginLeft="7dp" android:layout_marginTop="30dp"/> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" android:orientation="vertical"> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="TextBox"/> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="TextBox"/> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="TextBox"/> </LinearLayout> </LinearLayout> 
  • Android ImageView escala tipo centerCrop
  • Cambiar dinámicamente el ancho y la altura relativos del diseño
  • Android GridView de columna, anchura variable como la aplicación GooglePlus
  • Cómo establecer la posición de la vista mientras se utiliza addView
  • Cursor no es visible en EditText cuando se agrega dinámicamente la vista
  • MPAndroidChart PieChart no se muestra cuando se utiliza en ScrollView
  • ¿Cómo puedo alinear los botones de radio a la derecha del texto asociado?
  • Android - Uso de SurfaceView personalizado en XML de presentación
  • RecyclerView con la imagen de fondo en la parte superior
  • Cómo inflar varias instancias de un diseño con el mismo id dentro de un diseño inflado
  • Pre-estado pre-favorecido
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.