Измерение высоты многострочного TextView - PullRequest
0 голосов
/ 28 мая 2018

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

Чтобы это работало, мне нужно вычислить высоту TextView.Понятно, что это должно быть сделано, когда представление полностью раздуто, поэтому я устанавливаю текст в OnGlobalLayoutListener, а затем пытаюсь получить меры.

Это хорошо работает, например, для ImageView, новысота TextView кажется одинаковой независимо от того, сколько строк текста она показывает.Так что ни textView.getHeight(), ни textView.getMeasuredHeight() не дадут мне фактическую высоту многострочного TextView.Как я могу получить это?

1 Ответ

0 голосов
/ 28 мая 2018

Если я правильно понял, вы звоните setText на TextView в OnGlobalLayoutListener обратном вызове?

В то время высота еще не была рассчитана.

Вы должны либо:

1) Установить текст немедленно, до обратного вызова.Затем получите высоту в обратном вызове.

2) Вызовите post(Runnable) в TextView, находясь внутри обратного вызова OnGlobalLayoutListener.Внутри runnable вы можете получить высоту TextView.

...