[Android/Kotlin] Fragment 간의 화면 이동 및 백스택 관리

코코아의 개발일지·2023년 11월 12일
0

Android-Kotlin

목록 보기
16/31
post-thumbnail

✍🏻 요구사항 분석

A 프래그먼트 -> B 프래그먼트로 이동할 때 스택을 쌓았다가
B에서 뒤로가기 버튼을 누르면 다시 A로 돌아올 수 있도록!
일종의 백스택이라고 보면 된다.

👉🏻 화면 이동 및 백스택 관리
해당 게시물에 이어서 작성하는 내용이다.


💻 코드 작성

🅰️ Fragment

private fun moveToBFragment(album: Album) {
        (context as MainActivity).supportFragmentManager.beginTransaction()
            .add(R.id.main_frm, BFragment().apply {
                arguments = Bundle().apply {
                	// 넘길 데이터를 자유롭게 추가
                    ..
                }
            })
            .addToBackStack(null) // 백 스택에 트랜잭션을 추가
            .commitAllowingStateLoss()
    }

🅱️ Fragment

/* 뒤로가기 */
binding.backIv.setOnClickListener {
	val fragmentManager = (context as MainActivity).supportFragmentManager

	// 이전의 모든 프래그먼트를 백 스택에서 제거 (AFragment)
	fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE)
}

이런 식으로 작성해주고 나면, 스택에도 더 이상 화면이 쌓이지 않는다!
아무리 A <-> B 프래그먼트를 왔다갔다 하더라도 뒤로가기 한 번만 누르면 앱이 바로 종료될 수 있다.

profile
우당탕탕 성장하는 개발자

0개의 댓글