popUpTo 및 popUpToInclusive
2021. 4. 26. 09:08ㆍAndroid/Navigation
사용 예) 로그인 흐름이 있다면 사용자가 로그인했을 때 사용자가 뒤로 버튼을 눌러도 로그인 흐름으로 돌아가지 않도록 로그인과 관련된 모든 대상을 백 스택에서 팝해야 합니다.
인트로 화면에서 로그인 페이지로 넘어 갈때 SplashFragment를 Pop 하고 스택에서 제거 한다.
<fragment
android:id="@+id/splashFragment"
android:name="SplashFragment"
android:label="SplashFragment"
tools:layout="@layout/splash_fragment">
<action
android:id="@+id/action_splashFragment_to_signUpFragment"
app:destination="@id/signUpFragment"
app:popUpTo="@id/splashFragment"
app:popUpToInclusive="true" />
</fragment>
참고: 앱에 일회성 설정 또는 일련의 로그인 화면이 있을 수 있습니다. 조건부 화면은 일부 경우에만 사용자에게 표시되므로 시작 화면으로 고려해서는 안 됩니다.
B -> A -> B로 오면 A는 스택에서 사라져서 뒤로 가기 를 하면 B전에 호출한 페이지로 넘어간다.
<fragment
android:id="@+id/A"
android:name="AFragment"
android:label="AFragment"
tools:layout="@layout/camera_fragment">
<action
android:id="@+id/action_AFragment_to_BFragment"
app:destination="@id/BFragment"
app:popUpTo="@id/BFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/BFragment"
android:name="BFragment"
android:label="UploadFragment"
tools:layout="@layout/personal_upload_fragment">
<action
android:id="@+id/action_BFragment_to_familyFragment"
app:destination="@id/familyFragment" />
<action
android:id="@+id/action_BFragment_to_AFragment"
app:destination="@id/AFragment"
app:popUpTo="@id/BFragment" />
</fragment>
https://developer.android.com/guide/navigation/navigation-navigate?hl=ko#pop