Как узнать размер, который компонент может принимать в родительском элементе? - PullRequest
1 голос
/ 15 февраля 2011

Я создаю пользовательский компонент, где я могу узнать размеры, которые он может принять для своего родителя? В макете это определяется с помощью fill_parent x fill_parent.

Я пробовал getWidth () x getHeight () на конструкторе, на методе onMeasure и onFinishInflate, во всех случаях это возвращаемое значение 0, я хотел бы знать размер, который требуется для рисования некоторых компонентов в независимом размере экрана.

Ответы [ 2 ]

2 голосов
/ 15 февраля 2011

Вы можете переопределить onMeasure () и получить значения оттуда.

http://developer.android.com/reference/android/view/View.html#onMeasure(int, int)

В onMeasure вы можете установить собственные размеры для компонента и построить компонент в соответствии с размерами после этого.

Используйте View.MeasureSpec.getSize (один из методов параметров принимает значение. Ширина или высота), чтобы получить размеры.

1 голос
/ 15 февраля 2011

getWidth() и getHeight() будут заполняться только после фазы макета, то есть после вызова onLayout().

Вы не должны использовать значения в пределах onMeasure() или getMeasuredWidth() / getMeasuredHeight(), поскольку это только те измерения, которые изначально предлагается или хотел бы иметь представление, а не те, которые он фактически получает.

См. http://developer.android.com/guide/topics/ui/how-android-draws.html для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...