如何在新的导航组件中添加Fragment变化监听器?
我有一个BottomNavigationView,其中我使用了新的导航组件,参考官方示例。
我有四个目的地在我的BottomNavigationView
中,它们都有自己的导航图。
val navGraphIds = listOf(R.navigation.nav_home, R.navigation.nav_discover, R.navigation.nav_search, R.navigation.nav_my)
val controller = bottom_nav.setupWithNavController(
navGraphIds = navGraphIds,
fragmentManager = supportFragmentManager,
containerId = R.id.navHostContainer,
intent = intent
)
controller.observe(this, Observer { navController ->
setupActionBarWithNavController(navController)
})
我希望我的
MainActivity
中有一个监听器,当任何4个导航图中的片段发生变化时,都能够被监听到。只有在切换
BottomNavigationView
目标时,controller
才会起作用。
navController = Navigation.findNavController(this, R.id.nav_host_fragment)
,其中nav_host_fragment
是包含app:navGraph="@navigation/mobile_navigation"
的碎片。 - Rahul KahaleonDestroy()
中,监听器也应该被移除吗?类似这样:override fun onDestroy() { controller.removeOnDestinationChangedListener(listener) super.onDestroy() }
- A. Cedano