android - Navigation Jetpack 中没有 addOnNavigatedListener
问题描述
实际上,我想处理具有相同工具栏的不同片段之间的事件转换。我找到了这个答案。他们使用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
and the id
should be fragmentid
推荐阅读
- javascript - 如何在 JS 中从 json 中获取嵌套数据
- android - Android - java.lang.IllegalStateException:方法 addObserver 必须在主线程上调用
- php - Laravel 按列排序和关系列
- linear-algebra - 约束线性方程组的解
- python - 如何找到给出最佳分数的 train_test_split 的最佳 random_state 值?
- django - 如何在 gitlab 旁边设置 django?
- php - 将每个帖子放在自己独特的 div 上
- c++ - 在 C++ 中将字符串转换为无符号字符
- regex - htaccess 可以重定向到父文件夹吗?
- mysql - 当 ID 列不同时,在 SQL 中选择最近的重复项