Можно ли использовать второй навигационный график в качестве вложенного навигационного графика?

#android #android-navigation-graph

#Android #android-navigation-graph

Вопрос:

Новый навигационный компонент Android — это то, что, по-видимому, рекомендуется. Я следую официальному руководству по вложенности графов.

Чтобы сгруппировать пункты назначения во вложенный граф, выполните следующие действия:

В редакторе навигации нажмите и удерживайте клавишу Shift и щелкните пункты назначения, которые вы хотите включить во вложенный график. Щелкните правой кнопкой мыши, чтобы открыть контекстное меню, и выберите Переместить во вложенный график> Новый график. Пункты назначения заключены во вложенный граф. На рисунке 2 показан вложенный график в редакторе навигации:

Пока все работает хорошо, у меня только одна проблема. Все вложенные графики являются частью одного большого XML-файла, это проблема, поскольку это может привести к конфликтам слияния при использовании системы управления версиями.

Итак, мой вопрос в том, можем ли мы иметь такую же функциональность, если мы просто создадим два навигационных графика и включим новый график в качестве пункта назначения? Будет ли все работать так, как ожидалось, или это приведет к непредвиденным последствиям. Например, возврат к корню навигационного контроллера? Я не очень хорошо знаком с Android, но боюсь, что создается новый навигационный контроллер, и я не могу легко перемещаться при наличии двух навигационных графиков.

Кажется, в руководстве об этом ничего не упоминается.

Ответ №1:

Согласно ссылке другие навигационные графики с <include> :

Хотя функционально это то же самое, что и использование вложенного графика, include позволяет использовать графики из других модулей проекта или из библиотечных проектов

An <include> расширяется во время выполнения для работы идентично вложенному графу — нет никакой разницы в том, что вы можете сделать в отношении перехода к другим пунктам назначения и т.д.

Однако обратите внимание, что безопасные аргументы не работают в отдельных файлах навигационного графика (поскольку вы можете включить этот график в несколько других графиков, поэтому нет гарантии, что что-либо за пределами этого файла действительно «безопасно» существует), поэтому вам нужно будет подтвердить, что любое использование безопасных аргументов находится в пределах одного файла(использование других механизмов, таких как навигация вручную или навигация по глубокой ссылке, для перехода к графам, которые, как вы знаете, существуют, но не могут быть проверены во время компиляции).