Jetpack 导航动画完整侦听器

Alq*_*raf 7 android android-jetpack android-jetpack-navigation

我正在尝试使用 Jetpack Navigation 库在新导航事件完成时获得回调,以更改状态栏颜色。

到目前为止,我发现 navController.addOnDestinationChangedListener 它会在新导航开始时通知我,但不会在完成时通知我,这意味着进入/退出转换已完成。

有什么方法可以知道所有导航转换何时完成?

小智 2

你可以使用这样的东西:

val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment)
navHostFragment?.childFragmentManager?.addOnBackStackChangedListener {
    val currentFragment = navHostFragment.childFragmentManager.fragments.firstOrNull()
    if (currentFragment is YourFragment) {
        // your code here  
    } 
}
Run Code Online (Sandbox Code Playgroud)