¿Cuál es el equivalente de "colspan" en un Android TableLayout?

Estoy usando un TableLayout en Android. En este momento tengo un TableRow con dos elementos en él, y, debajo de eso, un TableRow con un elemento lo. Se hace así:

----------------------------- | Cell 1 | Cell 2 | ----------------------------- | Cell 3 | --------------- 

Lo que quiero hacer es hacer que Cell 3 se extienda a través de ambas células superiores, por lo que se ve así:

 ----------------------------- | Cell 1 | Cell 2 | ----------------------------- | Cell 3 | ----------------------------- 

En HTML usaría un COLSPAN …. ¿cómo puedo hacer que esto funcione en Android?

8 Solutions collect form web for “¿Cuál es el equivalente de "colspan" en un Android TableLayout?”

Parece que hay un atributo haciendo eso: layout_span

UPDATE: Este atributo debe aplicarse a los hijos de TableRow. NO al propio TableRow.

Para completar la respuesta, el atributo layout_span se debe agregar al niño, no a TableRow.

Este fragmento muestra la tercera fila de mi tableLayout, que se extiende por 2 columnas.

 <TableLayout> <TableRow android:layout_width="wrap_content" android:layout_height="wrap_content" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_span="2" android:text="@string/create" /> </TableRow> </TableLayout> 

Y así es como lo hace programáticamente

 //theChild in this case is the child of TableRow TableRow.LayoutParams params = (TableRow.LayoutParams) theChild.getLayoutParams(); params.span = 2; //amount of columns you will span theChild.setLayoutParams(params); 

Tienes que usar layout_weight para llenar la fila entera de lo contrario todavía llena la columna izquierda o derecha del diseño de la tabla.

 <TableRow android:id="@+id/tableRow1" android:layout_width="match_parent" android:layout_height="wrap_content"> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_span="2" android:layout_weight="1" android:text="ClickMe" /> </TableRow> 

Tal vez esto ayudará a alguien. He intentado la solución con layout_span pero esto no funciona para mí. Así que resolví el problema con este truco. Simplemente use LinearLayout en lugar de TableRow donde necesita colspan, eso es todo.

Use android: layout_span en el elemento hijo del elemento TableRow

Creo que necesitas envolver un diseño alrededor de otro. Tenga una lista de Layout verticalmente, dentro tenga otra (o en este caso, dos) lista horizontalmente.

Todavía estoy encontrando difícil dividir la interfaz a 50-50 porción en Android.

He tenido algún problema con rowspan, en el caso de TableRow, Textview y así sucesivamente, generado con código. Incluso si la respuesta de Onimush parece ser buena, no funciona con la interfaz de usuario generada.

Aquí hay un pedazo de código que … no funcionan:

  TableRow the_ligne_unidade = new TableRow(this); the_ligne_unidade.setBackgroundColor(the_grey); TextView my_unidade = new TextView(this); my_unidade.setText(tsap_unidade_nom); my_unidade.setTextSize(20); my_unidade.setTypeface(null, Typeface.BOLD); my_unidade.setVisibility(View.VISIBLE); TableRow.LayoutParams the_param; the_param = (TableRow.LayoutParams)my_unidade.getLayoutParams(); the_param.span = 3; my_unidade.setLayoutParams(the_param); // Put the TextView in the TableRow the_ligne_unidade.addView(my_unidade); 

El código parece estar bien, pero al llegar al inicio de "the_params" devuelve NULL.

En el otro extremo, este código funciona como un encanto:

  TableRow the_ligne_unidade = new TableRow(this); the_ligne_unidade.setBackgroundColor(the_grey); TextView my_unidade = new TextView(this); my_unidade.setText(tsap_unidade_nom); my_unidade.setTextSize(20); my_unidade.setTypeface(null, Typeface.BOLD); my_unidade.setVisibility(View.VISIBLE); // Put the TextView in the TableRow the_ligne_unidade.addView(my_unidade); // And now, we change the SPAN TableRow.LayoutParams the_param; the_param = (TableRow.LayoutParams)my_unidade.getLayoutParams(); the_param.span = 3; my_unidade.setLayoutParams(the_param); 

La única diferencia es que empujo la Textview dentro de TableRow antes de configurar el span. Y en este caso, funciona. ¡Espero que esto ayude a alguien!

  • Android - Tabla de estilos TableLayout
  • Cómo crear una tabla en Android con varias columnas?
  • Hacer células de igual anchura y altura para llenar la tabla
  • Borde de elementos de la fila de tabla en android
  • ¿Cómo obtener el evento de clic de la fila de la tabla / elemento de la tabla?
  • Disposición de respuesta de Android
  • Alineación de la disposición de la tabla de Android
  • Línea de encabezado de TableLayout de Android
  • Cómo agregar editText.addTextChangedListener en TableLayout
  • Grilla de datos completamente funcional en Android
  • Rellene TableLayout con android: layout_weight de forma programática
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.