У меня 4 фрагмента. Ниже приведен процесс навигации.
[Фрагмент 1] -> [Фрагмент 2] -> [Фрагмент 3]
[Фрагмент 4] -> [Фрагмент 3]
Если пользователь переходит к фрагменту 3 из 4 (т.е. [Фрагмент 4] -> [Фрагмент 3]) при обратном нажатии [Фрагмент 3], он должен перейти к [Фрагмент 1].
Думаю, если мне удастся найти предыдущий фрагмент, тогда будет легко перенаправить на [fragment 1]
. Есть ли способ найти замененный предыдущий фрагмент?
Я пробовал fragmentManager.getBackStackEntryAt (fragmentManager.backStackEntryCount - 1), но показывает только одну запись текущего фрагмента.
Менеджер фрагментов выглядит так.
onBackPressed
из Fragment 3
это я сделал примерно так.
override fun onBackPressed(): Boolean {
args.host.hideKeyboard()
if (redirectToProductList) {
args.host.activity?.let {
if (it.supportFragmentManager.popBackStackImmediate(null, FragmentManager.POP_BACK_STACK_INCLUSIVE)) {
openFirstFragment(it, SupportFragment(MainActivity.SalesRepProduct))
return true
}
}
}
return args.host.childFragmentManager.popBackStackImmediate()
}