Estou usando um TableLayout no Android. No momento, tenho um TableRow com dois itens e, abaixo disso, um TableRow com um item. Renderiza assim:
-----------------------------
| Cell 1 | Cell 2 |
-----------------------------
| Cell 3 |
---------------
O que eu quero fazer é fazer com que a célula 3 se estenda pelas duas células superiores, para que fique assim:
-----------------------------
| Cell 1 | Cell 2 |
-----------------------------
| Cell 3 |
-----------------------------
Em HTML, eu usaria um COLSPAN .... como faço para que isso funcione no Android?
android
android-layout
android-tablelayout
Spike Williams
fonte
fonte
Respostas:
Parece que há um atributo fazendo isso: layout_span
UPDATE: Este atributo deve ser aplicado aos filhos do TableRow. NÃO para o próprio TableRow.
fonte
Apenas para concluir a resposta, o atributo layout_span deve ser adicionado ao filho, não ao TableRow.
Este trecho mostra a terceira linha do meu tableLayout, que se estende por duas colunas.
fonte
E é assim que você faz programaticamente
fonte
child
neste caso pode ser qualquer coisa, não apenas textview como a sua edição sugeriu. ObrigadoVocê precisa usar layout_weight para preencher a linha inteira, caso contrário, ela ainda preenche a coluna esquerda ou direita do layout da tabela.
fonte
Talvez isso ajude alguém. Eu tentei a solução,
layout_span
mas isso não está funcionando para mim. Então, resolvi o problema com esse truque. Basta usarLinearLayout
no lugar deTableRow
onde você precisa colspan, só isso.fonte
use android: layout_span no elemento filho do elemento TableRow
fonte
Eu tive algum problema com o tablespan, no caso de TableRow, Textview e assim por diante, gerado com o código. Mesmo que a resposta do Onimush pareça boa, ela não funciona com a interface do usuário gerada.
Aqui está um pedaço de código que ... não funciona:
O código parece estar OK, mas, quando você alcança o init de "the_params", ele retorna NULL.
Por outro lado, esse código funciona como um encanto:
A única diferença é que eu pressiono o Textview dentro do TableRow antes de definir o intervalo. E, neste caso, funciona. Espero que isso ajude alguém!
fonte
Eu acho que você precisa envolver um layout em torno de outro. Tenha uma lista de Layout verticalmente; dentro, outra lista (ou nesse caso, duas) horizontalmente.
Ainda estou achando difícil dividir bem a interface para 50 a 50 partes do Android.
fonte