У меня есть 4 фрагмента.Ниже приводится навигационный поток
[Фрагмент 1] -> [Фрагмент 2] -> [Фрагмент 3]
[Фрагмент 4] -> [Фрагмент 3]
Если пользователь переходит к фрагменту 3 из 4 (то есть [Фрагмент 4] -> [Фрагмент 3]) при последующем нажатии [Фрагмент 3], он должен перейти к [Фрагмент 1].
Iподумайте, если мне удастся найти предыдущий фрагмент, тогда будет легко перенаправить на [fragment 1]
.Могу ли я найти какой-нибудь предыдущий фрагмент, который был заменен?
Я пробовал фрагментManager.getBackStackEntryAt (фрагментManager.backStackEntryCount - 1), но показывает только одну запись текущего фрагмента.
Менеджер фрагментов выглядит следующим образом.
Объект FragmentManager
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()
}