mText1.getLayoutParams (). height = NEW VALUE не действует во всплывающем окне - PullRequest
0 голосов
/ 05 февраля 2019

В 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 Ответ

0 голосов
/ 05 февраля 2019

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

requestLayout ()

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

setGravity и setText обрабатывают это для вас.

...