我想检查实际的片段是否脏了,并警告用户丢失所做的更改。在导航发生之前,我在Navcontroller上找不到侦听器进行交互。
我已经尝试将BottomNavigationView设置为侦听器,但结果是重置后导航不再起作用。
requireActivity().bottomNavigationView.setOnNavigationItemSelectedListener{menuItem ->
DialogUtil.showBeforeLeaveDetailFragmentDialog(context!!){
requireActivity().bottomNavigationView.setOnNavigationItemSelectedListener(null)
findNavController().navigate(menuItem.itemId)
}
false
}
我可以使用任何全局侦听器或其他干净的解决方案吗?
答案 0 :(得分:0)
这应该有效。
requireActivity().bottomNavigationView.setOnNavigationItemSelectedListener{menuItem ->
DialogUtil.showBeforeLeaveDetailFragmentDialog(context!!){
return NavigationUI.onNavDestinationSelected(it, navController)
}
false
}
我不知道您为什么要清除NavigationItemSelectedListener
。解释为什么要这么做。