Фрагменты, воссозданные с помощью компонентов Jetpack для Android-навигации - PullRequest
0 голосов
/ 10 октября 2019

У меня есть два фрагмента (например, фрагмент A и фрагмент B).

сначала во фрагменте A используйте findNavController().navigate(R.id.action_fragmentA_to_fragmentB) для перехода к фрагменту B.

затем во фрагменте B, если вы хотите вернуться к фрагменту A. есть два способа ниже:

  • просто нажмите кнопку возврата : фрагмент onCreate() не будет вызываться
  • findNavController (). navigate(R.id.action_fragmentB_to_fragmentA) : фрагменты A onCreate() будут называться

, почему?

1 Ответ

0 голосов
/ 10 октября 2019

Причина, по которой кнопка «Назад» не вызывает onCreate фрагмента, заключается в дизайне. Пользователи не ожидают, что кнопка «Назад» вызовет onCreate или снова создаст ваш фрагмент.

Например, подумайте, когда вы открываете приложение YouTube на Android и у вас отображается домашний экран, заполненный видео. основываясь на ваших интересах. Когда вы нажимаете на видео после небольшой прокрутки, а затем в середине видео решаете вернуться назад, нажав кнопку «Назад», вы ожидаете, что приложение вернется туда, где вы нажали на видео, с тем же объемом прокрутки, который вы сделали. вместо того, чтобы заново загружать всю домашнюю страницу, заполняя новые видео и возвращая вас в верхнюю часть экрана.

Аналогично, кнопка «Назад» в вашем приложении должна делать то же самое. Однако, если вы хотите, чтобы кнопка «Назад» работала по-другому, Android предоставляет способ сделать это. См. это для этого.

...