Где инициировать просмотры во Фрагменте? onViewCreated или onActivityCreated - PullRequest
0 голосов
/ 06 ноября 2018

Так, где лучшее место, чтобы начать представления во фрагменте? Мы знаем, что мы должны только раздувать компоновку внутри onCreate() и не запускать представления, как, например, настройку слушателей.

Вы должны надуть свой макет в onCreateView, но не должны инициализировать другие представления, используя findViewById в onCreateView.

И мы знаем, что onViewCreated() вызывается сразу после onCreateView(), и в основном представление завышено, и все готово. Но проблема в том, что onViewCreated вызывается каждый раз, когда вы переходите на другую страницу и возвращаетесь! Поэтому, если вы инициируете свои представления здесь, например, добавьте несколько слушателей, так как onViewCreated вызывается несколько раз, вы в конечном итоге инициируете свои представления несколько раз.

Итак, мои вопросы:

  • Понимаю ли я onCreateView() и onViewCreated верно?
  • Правильно ли использовать onActivityCreated для инициирования представлений, поскольку он вызывается только один раз и вызывается после onCreateView()?

1 Ответ

0 голосов
/ 07 ноября 2018

Вы должны надуть свои View в onCreateView().

Тогда вы должны настроить View в onViewCreated(). Тем не менее, многие люди просто настроят свои View в onCreateView() после их надувания.

Если эта функция вызывается несколько раз, то сам Fragment был уничтожен и нуждается в восстановлении.

...