Навигация: комплект в startDestination является нулевым - PullRequest
1 голос
/ 01 мая 2020

У меня есть HomeFragment, который включает в себя RecyclerView. Когда я нажимаю на элемент, я хочу go из HomeFragment в navigation/home_navigation.xml в другой DictionaryFragment, который находится в navigation/dictionary_navigation.xml, где DictionaryFragment является startDestination .

Я создал новое действие для вложенного navigation/dictionary_navigation.xml графика, потому что мне нужно открыть startDestination:

Nested graph

Не знаю не знаю, как правильно перенести мои данные в DictionaryFragment , но это:

HomeFragment

wordPackAdapter = PackAdapter(context, Utils.dictionaryPacks) {
    val bundle = Bundle().apply {
        putInt("packId", it.index)
    }
    navigate(R.id.action_homeFragment_to_dictionary_navigation, bundle)
}

DictionaryFragment

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    val bundle = requireActivity().intent.extras <---- null
}

Расширения

fun BaseFragment.navigate(
    resId: Int,
    bundle: Bundle? = null,
    navOptions: NavOptions? = null
) {
    NavHostFragment.findNavController(this).navigate(resId, bundle, navOptions)
}

не работает, потому что bundle равен нулю .

Я также использую Плагин SafeArgs, но, как я знаю, я не могу использовать DictionaryFragmentArgs.fromBundle () с startDestination.

Как я могу сделать это правильно?

1 Ответ

2 голосов
/ 01 мая 2020

Я думаю, что в DictionaryFragment вам следует попытаться получить данные с помощью getArguments ().

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