Несколько фрагментов на каждой странице BottomNavigationView
Я использую BottomNavigationView с четырьмя страницами. Если я хочу добавить 4 фрагмента, это нормально, но когда я хочу заменить новый фрагмент старым фрагментом на одной из страниц BottomNavigationView и восстановить его при нажатии элемента, первый фрагмент снова открывается. Как я могу восстановить последний фрагмент? Должен ли я использовать другой FrameLayout в первом BottomNavigationView?
1 ответ
Попробуй это:
bottomNavView.setOnNavigationItemSelectedListener(object : BottomNavigationView.OnNavigationItemSelectedListener {
override fun onNavigationItemSelected(item: MenuItem): Boolean {
clearAllBackStack()
when (item.itemId) {
R.id.itemHome -> {
// load fragment here
}
R.id.itemMyAccount -> {
// load fragment here
}
R.id.itemSettings -> {
// load fragment here
}
R.id.itemNotfications -> {
// load fragment here
}
}
return true
}
})
добавьте этот метод:
fun clearAllBackStack() {
for (i in 0 until supportFragmentManager.backStackEntryCount) {
supportFragmentManager.popBackStack()
}
}
Примечание: также добавляйте фрагмент в backstack всякий раз, когда вы загружаете фрагмент, добавьте это при загрузке фрагмента: fragmentTransaction.addToBackStack(null)