我在活动中将OnDestinationChangedListener
附加到我的NavController
上。
它适合所有碎片目的地。但是,当我导航到活动目的地时,我的听众没有通知更改。
override fun onStart() {
super.onStart()
navFragment.findNavController().addOnDestinationChangedListener { controller, destination, arguments ->
Log.e("Navigation", "id: ${destination.id} label: ${destination.label}")
}
}
我还能聆听活动目的地的目标更改?
文档说:
导航组件是为具有一个主要的应用而设计的 具有多个碎片目的地的活动。主要活动是 与导航图关联并包含一个NavHostFragment 负责根据需要交换目的地。在一个应用程序中 多个活动目的地,每个活动都有自己的导航 图。
现在,我认为您必须自己跟踪自己的活动。:-(导航图似乎已被"封装"在一个活动中。