Я думаю, что ваш вопрос конкретно касается того, как использовать поведение Pop Pop / app To / app: popUpTo (в xml)
В документации
всплыть до заданного места назначения перед навигацией,При этом все несоответствующие пункты назначения извлекаются из заднего стека до тех пор, пока этот пункт назначения не будет найден.
Пример (простое приложение для поиска работы)
my start_screen_nav график выглядит так:
startScreenFragment (start) -> loginFragment -> EmployerMainFragment
-> loginFragment -> JobSeekerMainFragment
если я хочу перейти на EmployerMainFragment
и выдать все , включая startScreenFragment
, тогда код будет:
<action
android:id="@+id/action_loginFragment_to_employerMainFragment"
app:destination="@id/employerMainFragment"
app:popUpTo="@+id/startScreenFragment"
app:popUpToInclusive="true" />
если я хочу перейти к EmployerMainFragment
и выдать все , исключая startScreenFragment
, тогда код будет:
<action
android:id="@+id/action_loginFragment_to_employerMainFragment"
app:destination="@id/employerMainFragment"
app:popUpTo="@+id/startScreenFragment"/>
, если я хочу перейти к EmployerMainFragment
и всплыть loginFragment
но не startScreenFragment
, тогда код будет:
<action
android:id="@+id/action_loginFragment_to_employerMainFragment"
app:destination="@id/employerMainFragment"
app:popUpTo="@+id/loginFragment"
app:popUpToInclusive="true"/>
ИЛИ
<action
android:id="@+id/action_loginFragment_to_employerMainFragment"
app:destination="@id/employerMainFragment"
app:popUpTo="@+id/startScreenFragment"/>