【发布时间】:2020-11-11 04:16:18
【问题描述】:
实际上,我想处理具有相同工具栏的不同片段之间的事件转换。我找到了这个answer。他们使用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'
有人知道发生了什么吗?
【问题讨论】:
-
addOnNavigatedListener是 Navigation 的 1.0 之前的 alpha 版本(添加该答案时)并重命名为addOnDestinationChangedListener。你是如何在你的片段之间导航的?你在哪里添加你的OnDestinationChangedListener(在你的活动中?片段?)。请注意,这里的 ID 是目标 ID,而不是代码中的操作 ID。 -
@ianhanniballake 你说得对,目的地 id 是片段的 id。谢谢
标签: android android-architecture-navigation android-jetpack-navigation android-navigation-graph