Как получить доступ к измерениям вида из Activity? - PullRequest
0 голосов
/ 15 июня 2011

Доступ к myView.getWidth() и getHeight() всегда возвращает ноль, и я понимаю, что это потому, что я вызываю их слишком рано, до того, как представления были изложены.

Но как я могу получить доступ к размеру просмотров из действия? Я не вижу метода для переопределения, и в документах не предлагается событие lifecycle, которое я могу поймать.

===================================

Спасибо, Таннер. Вот код, который я использовал, который отлично работает.

LinearLayout root = (LinearLayout)findViewById(R.id.main);
Display d = ((WindowManager) this.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int screenWidth = d.getWidth();
int screenHeight = d.getHeight();
root.measure(screenWidth, screenHeight);
View myView = findViewById(R.id.myView);
int width = myView.getMeasuredWidth();

Ответы [ 2 ]

1 голос
/ 15 июня 2011

Посмотрите на это: http://developer.android.com/guide/topics/ui/how-android-draws.html

Вы пытались позвонить measure(), а затем getMeasuredWidth() на ваш взгляд?

Обратите внимание, что есть также метод requestLayout()

0 голосов
/ 15 июня 2011

Вы должны получить доступ к измерениям после того, как ваш макет был задан как вид содержимого деятельности. Просто найдите его по id с помощью findViewById (id) и затем вызовите myView.getWidth ()

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