Навигация по Android, я могу переместить любой фрагмент, который не связан
Я пытаюсь использовать компонент архитектуры навигации в своем игрушечном приложении.
Сначала я нарисовал взаимосвязь фрагментов в моем файле nav_graph.xml.
Например, я нарисовал 3 фрагмента A, B и C, как показано ниже:
A -> B -> C
Итак, у меня есть 2 действия:
- action_a_to_b
- action_b_to_c
В общем, я использую приведенный ниже код для перемещения другого фрагмента.
Во фрагменте
findNavController().navigate(ADirections.actionAToB())
Во фрагменте В,
findNavController().navigate(ADirections.actionBToC())
Но вы можете знать, что есть другой способ навигации. Идентификатор фрагмента можно использовать для прямой навигации, как показано ниже:
findNavController().navigate(R.id.a)
В моем случае у меня нет действия для фрагмента от А до С. Но если я использую приведенный ниже код в своем фрагменте A, я могу ориентироваться!
findNavController().navigate(R.id.c)
Это ошибка? или намерены?
1 ответ
Это преднамеренно согласно документации дляnavigate()
:
Это поддерживает как навигацию через действие, так и прямую навигацию к месту назначения.
Если вы используете Safe Args, то поддерживаются только действия. Это гарантирует, что вы используете только те соединения, которые вы указали на графике.