говорят, что у меня есть 2 фрагмента. Логин и Дом. Я задаю Фрагмент Home как глобальный пункт назначения с аргументами userData
, если пользователь еще не вошел в систему, он будет начинаться с фрагмента входа , после входа в систему и получения userData с сервера, он перейдет в Home и передаст userData, используя этот код
val home = AuthenticationFragmentDirections.actionGlobalHomeFragment(userData)
Navigation.findNavController(view).navigate(home, navOptions)
, но проблема заключается в том, что пользователь уже входит в систему и открывает приложение. в этой ситуации они непосредственно откроют фрагмент дома. и мое приложение cra sh с ошибкой
java .lang.IllegalArgumentException: обязательный аргумент "userData" отсутствует и не имеет android: defaultValue
поэтому я предполагаю, что могу установить обнуляемый тип данных в таких аргументах, как User?
, поэтому фрагмент Home не нуждается в userData, если он не получен из Login
после чтения из здесь , я установил аргумент как этот для достижения User?
<argument
android:name="userData"
android:defaultValue="@null"
app:argType="User"
app:nullable="true" />
, но проблема в том, что у меня слишком много аргументов, когда я помещаю пользовательские данные для отправки домой из фрагмента входа в систему
Я использую это в Gradle
implementation "androidx.navigation:navigation-fragment-ktx:2.3.0-alpha04"
implementation "androidx.navigation:navigation-ui-ktx:2.3.0-alpha04"