Подтвердить что ты не робот

В чем разница между getMeasuredHeight и getHeight

Я пытаюсь вызвать View.getMeasuredHeight и View.getHeight в onGlobalLayout. Оба дают мне тот же результат.

Мне было интересно, в какой ситуации их ценность будет иной? Есть ли какой-нибудь пример, чтобы продемонстрировать это?

Я пробовал искать в google. 1-й результат не имеет отношения к этому вопросу: Android: как получить пользовательский вид высоты и ширины?

4b9b3361

Ответ 1

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

Документация для класса View описывает эти свойства следующим образом:

Размер представления выражается шириной и высотой. В представлении фактически есть две пары значений ширины и высоты.

Первая пара известна как измеренная ширина и измеренная высота. Эти размеры определяют, как большой вид хочет быть внутри его родителя (см. Макет для более подробной информации.) Измеренные размеры можно получить, вызвав getMeasuredWidth() и getMeasuredHeight().

Вторая пара просто известна как ширина и высота, или иногда ширина рисунка и высота рисунка. Эти размеры определяют фактический размер представления на экране, время рисования и после макета. Эти значения могут, но не обязательно, отличаться от измеренной ширины и высоты. Ширина и высота можно получить, вызвав getWidth() и getHeight().

Смотрите также: http://developer.android.com/guide/topics/ui/how-android-draws.html