Итак, у меня есть TableLayout, объявленный в XML с двумя столбцами в первой строке и четырьмя столбцами во второй строке.
--------- ---------
| | |
| A | B |
| | |
--------- ---------
| | | | |
| | | | |
--------- ---------
Теперь я хочу динамически изменить colspan второго столбца (столбец B) в первой строке, чтобы охватить все 4 столбца вместо двух, а первый столбец (столбец A) исчез, и возможность переключиться обратно на двухколонное состояние. Таким образом, второе состояние макета таблицы будет таким:
-------------------
| |
| B |
| |
--------- ---------
| | | | |
| | | | |
--------- ---------
Первоначально оба из A и B создаются в XML, а после загрузки изменяются размеры и добавляются поля:
TableRow.LayoutParams bLp = new TableRow.LayoutParams(size, size);
bLp.setMargins(margin, 0, 0, margin);
bLp.span = 2;
b.setLayoutParams(bLp);
Но если я попытаюсь изменить диапазон этого второго столбца и скрыть первый, единственное, что изменится, это второй столбец, скользящий влево
a.setVisibility(View.GONE);
TableRow.LayoutParams bLp = (TableRow.LayoutParams) b.getLayoutParams();
bLp.span = 4;
b.setLayoutParams(bLp);
Изменение ширины второго столбца на MATCH_PARENT тоже не помогает, но, как говорится в документе Android для TableRow.LayoutParams, ширина вообще не учитывается:
Этот набор параметров макета обеспечивает ширину каждого дочернего элемента равным MATCH_PARENT, а высоту каждого дочернего элемента — WRAP_CONTENT, но только в том случае, если высота не указана.
Есть ли способ добиться того, что я пытаюсь сделать с TableLayouts?
Спасибо