【问题标题】:No addOnNavigatedListener in Navigation JetpackNavigation Jetpack 中没有 addOnNavigatedListener
【发布时间】: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


【解决方案1】:

感谢@ianhanniballake,addOnNavigatedListener 重命名为addOnDestinationChangedListener 并且id 应该是片段id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多