Как настроить несколько вложенных FragmentContainerViews с соответствующими графиками навигации? - PullRequest
0 голосов
/ 23 апреля 2020

Я пытался преобразовать свое приложение в одно действие в соответствии с рекомендациями Google. (Использование Kotlin)

Допустим, у меня FragmentContainerView1 в моей деятельности без какой-либо панели инструментов или чего-либо еще.
Это представление используется для навигации между экраном входа в систему, регистрации и отображения основного фрагмента.

Внутри основного фрагмента у меня есть другой FragmentContainerView2, который должен отображаться в соответствии с представлением BottomNavigation внутри основного фрагмента.

Но тогда у меня есть некоторые элементы внутри фрагментов в FragmentContainerView2, которые должны выполнять действия в FragmentContainerView1 .

Как мне этого добиться?

Изображение:
Здесь mainFragment содержит BottomNavigation, из которых mainMenuFragment является пунктом назначения, который должен выполнять действия в FragmentContainerView1. Как получить ссылку на внутренний навигационный контроллер BottomNavigation?

Редактировать 1: navController=Navigation.findNavController(view.findViewById(R.id.fragmentContainer)) не работает, по-прежнему возвращает тот же внешний навигационный контроллер. Main Nav Graph

1 Ответ

0 голосов
/ 23 апреля 2020

Не полное решение, но ответ, который я нашел, состоял в том, чтобы оставить один из контейнеров в качестве фрагмента, а другой в качестве фрагмента контейнера.

А для получения внутреннего контроллера навигации используйте:

innerNavController= (activity as AppCompatActivity).findNavController(R.id.innerFragmentContainer)

Работает только с этой указанной командой c и одним из контейнеров.

Также после получения innerNavController, Любой тип вызова с findNavController() дает контроллер внутренней навигации.
Чтобы получить externalNavController, используйте:

outerNavController = (activity as AppCompatActivity).findNavController(R.id.outerFragmentContainer)
...