findNavController и изолированный фрагмент - PullRequest
1 голос
/ 10 апреля 2019

Я запускаю BottomSheetDialogFragment из основного фрагмента с помощью функции show (компонент навигации не может запустить DialogFragments).

Теперь в BottomSheetDialogFragment у меня есть кнопка для перехода к детализации.

У меня есть BottomSheetDialogFragment, определенный на графике (изолированный), и он указывает на детальное действие.

Но когда я пытаюсь ориентироваться, он не может найти navController. Можно ли передать navController в этот изолированный фрагмент?

MainFragment to Detail работает DialogFragment to Detail не работает.

Я пытался: - findNavController: навигация не установлена - activity.findNavController (...)

enter image description here

1 Ответ

0 голосов
/ 11 апреля 2019

Но когда я пытаюсь ориентироваться, он не может найти navController .Вот как работает навигационный компонент.

Можно ли передать navController в этот изолированный фрагмент? Надеюсь, вы не согласитесь с этим, замена navController - не идеальное решение для вашего случая.

Что делать?

Вы можете иметь новый nav.xml с новым родительским действием и (изолированным) фрагментом как дочерний, и переходить от BottomSheetDialogFragment к (изолированному) фрагменту -деятельность.

В противном случае, я не вижу проблем, которые мешают вам добавлять связанные фрагменты в один nav.xml.

Также вам может потребоваться выполнить контракт для компонента навигации, не так ли?Если вы используете функцию show() во время использования навигационного компонента, вы можете упустить некоторые преимущества здесь!

Вам действительно не нужна функция показа, см .: -

Android Activity в виде диалога

Объяснение: -

Вы можете иметь родительское действие и установить его тему в качестве диалога, поэтому все фрагменты (внутри nav.xml) будут диалоговыми окнами ..

Я использовал этот трюк в одном из му приложений до.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...