android - OnDestinationChangeListener 不适用于 Activity 目的地

标签 android android-architecture-navigation

我正在将 OnDestinationChangedListener 附加到我的 Activity 中的 NavController

它适用于所有 fragment 目标。但是,当我导航到 Activity 目的地时,我的监听器不会收到更改通知。

override fun onStart() {
    super.onStart()
    navFragment.findNavController().addOnDestinationChangedListener { controller, destination, arguments ->
        Log.e("Navigation", "id: ${destination.id} label: ${destination.label}")
    }
}

我怎样才能同时监听 Activity 目的地的目的地变化?

最佳答案

Documentation说,那:

The Navigation component is designed for apps that have one main activity with multiple fragment destinations. The main activity is associated with a navigation graph and contains a NavHostFragment that is responsible for swapping destinations as needed. In an app with multiple activity destinations, each activity has its own navigation graph.

所以现在我认为你必须自己跟踪你的 Activity 。 :-( 导航图似乎被“封装”在一个 Activity 中。

关于android - OnDestinationChangeListener 不适用于 Activity 目的地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55183578/

相关文章:

java - 如何修复 XML Java 按钮故障?

android - 从 Android 中的对象实现 Serializable 和 Parcelable 接口(interface) - 冲突

Android - 构建支持附加组件的应用程序

android - 使用导航组件 API 时更改语言 24+

android - 导航组件透明工具栏

android - 如何防止同一 fragment 在 Android 架构导航组件中多次打开?

Android Studio 无法在任务 ':project:dexDebug' 上调用 IncrementalTask​​.taskAction()

android - 如何从 ListView 中获取不在 View 中的数据?

android - 导航组件 : Navigate from Fragment in Viewpager to another Fragment

android - 如何在android导航组件中传递参数名称?