Android 导航Jetpack中没有addOnNavigatedListener
实际上,我想用同一个工具栏处理不同片段之间的事件转换。我找到了这个。他们使用的是Android 导航Jetpack中没有addOnNavigatedListener,android,android-architecture-navigation,android-jetpack-navigation,android-navigation-graph,Android,Android Architecture Navigation,Android Jetpack Navigation,Android Navigation Graph,实际上,我想用同一个工具栏处理不同片段之间的事件转换。我找到了这个。他们使用的是addOnNavigatedListener,但在我的例子中,我没有找到这个接口。我只有addOnDestinationChangedListener,它没有触发片段之间的转换。我想要这样的东西: navController.addOnNavigatedListener { controller, destination -> when(destination.id){
addOnNavigatedListener
,但在我的例子中,我没有找到这个接口。我只有addOnDestinationChangedListener
,它没有触发片段之间的转换。我想要这样的东西:
navController.addOnNavigatedListener { controller, destination ->
when(destination.id){
R.id.action_nav_home_to_nav_search -> {
println("HOME TO SEARCH")
Timber.d("HOME TO SEARCH")
card_search.visibility = View.GONE
}
else -> {
println("HOME KE LAIN")
card_search.visibility = View.VISIBLE
}
}
}
我使用此依赖项:
implementation 'androidx.navigation:navigation-fragment-ktx:2.3.1'
implementation 'androidx.navigation:navigation-ui-ktx:2.3.1'
有人知道发生了什么吗?多亏了@ianhanniballake,
addOnNavigatedListener
重命名为addOnDestinationChangedListener
,id
应该是fragmentidaddOnNavigatedListener
是1.0之前的导航字母(这是在添加答案时)并重命名为addOnDestinationChangedListener
。您如何在片段之间导航?您在哪里添加您的OnDestinationChangedListener
(在活动?片段中?)。请注意,其中的id是目标id,而不是代码中的操作id。@ianhanniballake your's right,destination id表示片段的id。谢谢