Какие знаешь способы перехода с одного Fragment на другой

«Какие знаешь способы перехода с одного Fragment на другой» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

  1. FragmentTransaction – базовый способ через replace(), add(), remove().
    supportFragmentManager.beginTransaction()
        .replace(R.id.container, NewFragment())
        .addToBackStack(null)
        .commit()
  1. Navigation Component – декларативный подход с графом навигации.
    findNavController().navigate(R.id.action_to_new_fragment)
  1. ViewPager2 – для горизонтальных переходов (например, onboarding).

  2. DialogFragment – для модальных окон поверх текущего фрагмента.

Нюансы:

  • replace() уничтожает предыдущий фрагмент, add() добавляет поверх.
  • addToBackStack() сохраняет историю для кнопки "назад".
  • Для передачи данных между фрагментами используйте SafeArgs (в Navigation) или ViewModel.

Пример с анимацией:

setCustomAnimations(
    R.anim.slide_in,
    R.anim.fade_out,
    R.anim.fade_in,
    R.anim.slide_out
)