Хорошо, позвольте мне объяснить вам, что это исключение прошло, потому что мы вызываем действие из фрагмента (адресата), который не является текущим адресатом в стеке.
т.е. вы вызываете действие
R.id.action_aFragment_to_bFragment
из фрагмента A, но в navController текущее назначение отличается от фрагмента A.Вот почему navController через это исключение:
navigation destination com.xxx.yyy:id/action_aFragment_to_bFragment is unknown to this NavController
вы можете проверить текущий пункт назначения перед навигацией.как
Toast.makeText(context,view?.findNavController()?.currentDestination?.label,Toast.LENGTH_SHORT).show()
Это покажет вам текущий пункт назначения, и я уверен, что это будет другой пункт назначения.
Это произойдет, когда мы заменим фрагмент, отличный от действий (например, через старыйметоды без навигации) или мы выскакиваем этот фрагмент перед вызовом действия.
Если это так, то вам нужно использовать Глобальное действие , потому что им все равно, какой текущий пункт назначения.