我正在使用导航组件和BottomNavigationView设置UI。
3个标签:“首页”,“新闻”,“帐户”。
当我从首页导航到新闻(当前,“后退”堆栈具有HomeFragment)并按“返回”按钮时,片段新闻将被销毁,“后退”堆栈中的HomeFragment也将被销毁并创建新的HomeFragment。我希望BackFragment中的HomeFragment再次显示而不破坏并创建新的。
我使用以下代码:
bottomNavigation.setupWithNavController(navHostFragment.findNavController())
如何解决此问题?
谢谢。
更新问题:
当我单击菜单项时,Fragment将创建新实例。我不想要那样,我想导航到尚未被单击的新片段,如果再次单击菜单项,片段将再次显示(不创建新片段)。
答案 0 :(得分:0)
关于您更新的问题。如果您不想在重新选择时重新创建片段,只需在 BottomNavigationView 上设置 OnNavigationItemReselectedListener
bottomNavigation.setOnNavigationItemReselectedListener { item ->
when (item.itemId) {
R.id.frag1-> {
// do something on reselection or leave empty
}
R.id.frag2-> {
// do something on reselection or leave empty
}
}
}