NOW OR NEVER

[Android] Navigation에서의 back stack 관리 본문

Android

[Android] Navigation에서의 back stack 관리

LAURA 2023. 12. 26. 19:20
반응형

Navigation에서의 back stack 관리

  • Navigation을 사용하면 백스택을 자동으로 관리해주지만 이 백스택을 수동적으로 제어할 수 있는 방법이 있을까 의문이 들어 공부해봤다.
  • Navigation Component를 사용하면 여러 개의 백 스택을 관리할 수 있다. 이를 통해 프래그먼트 스택을 별도로 관리하고 제어할 수 있다.

popUpTo와 popUpToInclusive

  • popUpTo :  백 버튼 클릭 시 돌아가려는 프래그먼트 설정한다. 즉 뒤로 가기 버튼을 눌렀을 때 지정된 프래그먼트까지 이동하여 그 사이의 스택이 제거한다
  •  popUpToInclusive : popUpTo와 같이 사용 시 popUpTo에 설정된 프래그먼트를 포함한 스택들을 제거한다.
<action
    android:id="@+id/action_to_twoFragment"
    app:destination="@id/twoFragment"
    app:popUpTo="@id/oneFragment"
    app:popUpToInclusive="true" />

 

NavController.popBackStack() 메서드

  • navController객체.popBackStack(프래그먼트, boolean 값)
  • boolean값을 false로 설정하면 해당 목적지를 스택에서 완전히 제거하지 않고 남겨둘 수 있다.
  • NavController.popBackStack() 메서드를 사용하여 코드에서 백 스택을 제거할 수 있다.
  •  특정 목적지 이후의 스택을 제거하거나 특정 조건에 따라 스택을 동적으로 제어할 수 있다.

공식문서 : https://developer.android.com/guide/navigation/multi-back-stacks?hl=ko

Comments