Страницы

Поиск по вопросам

четверг, 2 января 2020 г.

Как выполнить действие после отрисовки Activity (fragment)

#java #android #android_view


Есть ли метод с которого возможно воздействовать на только что отобразившуюся активность?
Мне надо перезапустить view, как только она отрисуется. А отрисовать надо, чтобы узнать
ее размер. После чего сразу выполнить другое действие с этими данными.
    


Ответы

Ответ 1



К примеру у вас есть View mExampleView повесьте на нее обсервер, он сработает, как только вьюшка будет нарисована на экране. Когда будет вызван onGlobalLayout, вы можете узнать ее размер, затем отпишитесь и выполняйте нужный код. ViewTreeObserver viewTreeObserver = mExampleView.getViewTreeObserver(); viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { mEaxampleView.getHeight(); // будет больше 0 mEaxampleView.getViewTreeObserver().removeGlobalOnLayoutListener(this); // Остальные действия } });

Ответ 2



Мне помогает такой код: myView.postDelayed(new Runnable() { @Override public void run() { ...нужные действия } },100); на post View уже отрисовано. UPD: изменил post на postDelayed - так должно работать

Ответ 3



Скорее всего вас устроит метод onResume(). Он есть и в активити и во фрагменте.

Комментариев нет:

Отправить комментарий