首页 > 解决方案 > Jetpack 导航动画完整监听器

问题描述

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

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

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

标签: androidandroid-jetpackandroid-jetpack-navigation

解决方案


你可以使用这样的东西:

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

推荐阅读