mText1.getLayoutParams().height = NEW VALUE не действует во всплывающем окне

В Android приложение,
Я создаю LinearLayout, который содержит TableLayout, который содержит несколько строк, и одна из строк содержит TextView с именем mText1

Я настроил всплывающее окно с этим LinearLayout с настройкой mText1 следующим образом:
mText1.getLayoutParams().height = OLD VALUE

Затем, когда во всплывающем окне в другой строке таблицы пользователь нажимает на ImageView, я бы хотел изменить высоту mText1 следующим образом:
mText1.getLayoutParams().height = NEW VALUE

Проблема в том, что это не вступит в силу, но когда я наберу следующий код, он вступит в силу:
mText1.setGravity(Gravity.CENTER)

Или, если я наберу следующий код вместо предыдущего, он также вступит в силу:
mText1.setText("some value")

Зачем?

1 ответ

Решение

Вам нужно позвонить requestLayout() после изменения LayoutParams,

requestLayout()

Вызывайте это, когда что-то изменилось, что сделало недействительным макет этого представления. Это запланирует проход макета дерева представления.

setGravity а также setText занимаемся этим для вас.

Другие вопросы по тегам