, поэтому я использую навигационный компонент android, и у меня проблема (версия 2.2.0-rc04).
У меня есть welcomeFragment
(wF). От wF
Я хочу перейти к loginSellerFragment
(lSF), который находится в другом графике навигации. Я также не хочу удалять wF
из backstack (popUpTo, popUpToInclusive) при переходе к lSF
, потому что пользователь может захотеть go вернуться к нему.
<fragment
android:id="@+id/welcomeFragment">
<action
android:id="@+id/action_welcomeFragment_to_nav_onboarding_seller"
app:launchSingleTop="true"
app:destination="@id/nav_onboarding_seller" />
</fragment>
После перехода к lSF бэкстек выглядит следующим образом: wF lSF
Мы сейчас на lSF
, после входа нам нужно go на feedFragment
(fF), который снова находится в отдельном графике, но на этот раз мы хотим очистить весь backstack, потому что, если пользователь вошел в систему и нажал назад, он хочет, чтобы приложение закрылось, а не возвращать его к wF
или lSF
, поэтому я использовал popUpTo="@id/loginSellerFragment popUpToInclusive='true"
в действии от lSF
до fF
.
<fragment
android:id="@+id/loginSellerFragment">
<action
android:id="@+id/action_login_to_seller"
app:destination="@+id/seller" . //this is the graph that has as firstDestination, feedFragment
app:launchSingleTop="true"
app:popUpTo="@id/loginSellerFragment"
app:popUpToInclusive="true" />
</fragment>
Так что в backstack в этот момент должно быть только fF потому что мы удалили все до lSF
(lSF
включено)
Проблема
Когда я на fF
и нажимаю назад, приложение не закрывается, вместо этого у меня уходит wF
(wF
уже должно было быть выскочило из стека)
То, что я пробовал
I Я пытался вместо popUpTo="@id/loginSellerFragment popUpToInclusive='true"
использовать popUpTo="@id/welcomeFragment popUpToInclusive='true"
, и он работал нормально, но я почти уверен, что это не так. Что мне здесь не хватает, ребята? Я неправильно строю backstack?
Также я пытался добавить popUpTo="@id/welcomeFragment popUpToInclusive='true"
после перехода от wF
к lSF
, но это нарушит мой пользовательский опыт, потому что я не хочу, чтобы приложение выйти, когда я еще в процессе входа в систему.
Обратите внимание, что все эти фрагменты представлены в отдельных графиках. Для навигации я использую FragmentDirections
например: findNavController.navigate(WelcomeFramgentDirections.actionXtoY())