导航组件-BottomNavigationView-返回时不要保留startDestination片段

时间:2020-08-30 17:32:01

标签: android material-design bottomnavigationview android-architecture-navigation

我正在使用导航组件和BottomNavigationView设置UI。

3个标签:“首页”,“新闻”,“帐户”。

当我从首页导航到新闻(当前,“后退”堆栈具有HomeFragment)并按“返回”按钮时,片段新闻将被销毁,“后退”堆栈中的HomeFragment也将被销毁并创建新的HomeFragment。我希望BackFragment中的HomeFragment再次显示而不破坏并创建新的。

我使用以下代码:

bottomNavigation.setupWithNavController(navHostFragment.findNavController())

如何解决此问题?

谢谢。


更新问题:

当我单击菜单项时,Fragment将创建新实例。我不想要那样,我想导航到尚未被单击的新片段,如果再次单击菜单项,片段将再次显示(不创建新片段)。

1 个答案:

答案 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
            }
        }
    }