@intTosha

Android studio, getX() возвращает ноль из за того что View элементы не отпозиционировались. Как проверить отрисовались ли элементы экрана?

getX() возвращает ноль, так как View элементы еще не успели отпозиционироваться. Как это исправить?
Смотрел в гугле и нашел решение: повесить на кнопку слушатель который исполняется, когда кнопка отрисовывается (Если я правильно понял). Есть ли слушатель который будет исполняться когда все View элементы отрисуются?
Например в ActionScript3.0 был слушатель ADDED_TO_STAGE. Исполнялся при добавлении на сцену элемента.
Если есть какой то другой способ получить позицию элемента, пожалуйста поделитесь.

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button b = (Button) findViewById(R.id.mainbutton);
float position = b.getX();
Log.d("myLogs" , String.valueOf( position )); //Возвращает ноль.
}

P.S. Посмотрев еще немного, нашел метод OnPostCreate() Вроде можно получить позицию элементов, так как он выполняется чуть позже. Но он есть только на API 21 и выше. А у меня Android 4.2 Так что это не подходит
  • Вопрос задан
  • 474 просмотра
Пригласить эксперта
Ответы на вопрос 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Можно использовать View.getViewTreeObserver().setOnGlobalLayoutListener, или типа того.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы