Передача аргументов с BottomNavigationView с использованием компонента Safeargs - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь использовать компоненты Navigation и SafeArgs в моем приложении Android вместе с BottomNavigationView, но я не могу передать аргументы через представление bottomnavigation.

Это мой случай:

  • HomeActivity: размещает все фрагменты и передает идентификатор пользователя всем фрагментам
    • FragmentA: извлекает идентификатор пользователя и делает что-то ..
    • FragmentB: как FragmentA
    • FragmentC: as FragmentA

В своей HomeActivity я настроил компонент навигации для переключения между фрагментами:

uid = "hello"
navController = Navigation.findNavController(this, R.id.nav_host_fragment)
bottom_nav?.let {
            NavigationUI.setupWithNavController(it, navController)
        }

и передал идентификатор пользователяс помощью:

navController.addOnDestinationChangedListener { _, destination, arguments ->
    when(destination.id) {
       R.id.navigation_storyboard -> {
       val argument = NavArgument.Builder().setDefaultValue(uid).build()
       destination.addArgument("uid", argument)
       }
    }
}

Внутри FragmentA я пытался получить данные, используя FragmentAArgs.fromBundle(arguments!!).uid и свойство делегата by NavArg(), но я получаю null (или просто значение по умолчанию)

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