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

Обнаруживать, когда фрагмент рисуется?

В основном мне нужна функциональность onWindowFocusChanged(), но на Fragment. К сожалению, прослушиватель onWindowFocusChanged() на самом деле недоступен для фрагментов, поэтому я не уверен, что делать.

Как это сделать?

4b9b3361

Ответ 1

Фрагменты "нарисованы" через View, который вы возвращаете в onCreateView(). Вы можете использовать обработчики событий. Обычно, если есть команда, которая должна запускаться, когда сначала появляется View, вы можете назначить ее в Runnable и прикрепить ее к View с помощью метода post().

getView().post(new Runnable() {
    @Override
    public void run() {
      // code you want to run when view is visible for the first time
    }
  }
)

Ответ 2

onWindowFocusChanged (boolean hasFocus) вызывает вызовы в активности, но при рисовании фрагментов мы можем проверить метод onActivitycreated(). Отметьте это сообщение https://stackoverflow.com/a/32819850/2732632

Ответ 3

OnWindowFocusChanged не предоставляет информацию о рисовании вида (или не видел) Внедрите OnWindowFocusChanged в каждом представлении, которое может иметь фокус в вашем фрагменте. в псевдокоде:

Fragment implements OnWindowFocusChanged{

onCreate(){

btn.OnWindowFocusChanged(this);
editTxt.OnWindowFocusChanged(this);
....

}

public void OnWindowFocusChanged(boolean hasFocus){
// your fragment has focus
}

}