Менять DialogFragment Max_Height динамически перед onResume ()? - PullRequest
4 голосов
/ 26 апреля 2019

У меня есть пользовательский DialogFragment, который я хочу динамически изменять max_height в соответствии с размером содержимого его представления (содержимое переноса).

Я не хочу, чтобы обновление max_height вызывалоперейти в пользовательский интерфейс, поэтому я планировал сделать это очень рано в жизненном цикле представления: onMeasure().

Но как я могу тогда уведомить содержащее dialog или dialogFragment?

Из фрагмента диалога я могу получить его размещенный вид, но не могу зарегистрировать это событие onMeasure().

С точки зрения, я могу написать код в методе onMeasure(), но как мне получить ссылку на содержащий его диалог?

Я видел этот пост, но изменил высоту onResume() вызовет слабый пользовательский интерфейс (скачок после того, как пользовательский интерфейс виден)

https://stackoverflow.com/a/24213921/311130

1 Ответ

0 голосов
/ 29 апреля 2019

Как насчет ((View) view.getParent()).invalidate() в onMeasure() любого вида. Я понимаю, что это как-то не так, но я должен исправить вашу проблему с одним вкладышем.

По общему признанию, это становится намного более громоздким, если recalculated-height- View глубже в иерархии вида.

...