관리 메뉴

막내의 막무가내 프로그래밍 & 일상

[안드로이드] Jetpack Navigation 사용시 프래그먼트 재생성 되는 문제 해결 (android bottom navigation fragment save state) 본문

안드로이드/코틀린 & 아키텍처 & Recent

[안드로이드] Jetpack Navigation 사용시 프래그먼트 재생성 되는 문제 해결 (android bottom navigation fragment save state)

막무가내막내 2021. 12. 4. 23:05
728x90

 

 

 

https://github.com/STAR-ZERO/navigation-keep-fragment-sample

 

GitHub - STAR-ZERO/navigation-keep-fragment-sample

Contribute to STAR-ZERO/navigation-keep-fragment-sample development by creating an account on GitHub.

github.com

위 깃허브 샘플프로젝트의 예제 화면

안드로이드 Jetpack Navigation 사용을 하면 프래그먼트는 항상 재생성이 됩니다.

그래서 Jetpack의 BottomNavigation을 사용해 밑에 탭이 있는 메인 홈화면을 구성한다면,

홈탭을 누를때마다 프래그먼트가 재생성이 되서 로딩도 느리고 뭔가 시중앱과 다르게 부자연스러워 보이기도 할겁니다.  예를들어 대표적인 시중앱인 카카오톡, 토스 등은 메인 홈화면의 바텀 탭을 누르면 처음에만 화면이 생성되고 그 다음 다시 누를떄는 재생성되지 않고 기존화면(프래그먼트)를 보여주어 빠릅니다.

 

즉, 홈화면의 바텀탭간의 화면전환(프래그먼트) 만큼은 재생성이 되는 것을 막는게 좋아보였습니다.

 

이 샘플 프로젝트에서 Jetpack Navigationd을 커스텀해서 이러한 문제점을 해결하였는데 이 코드를 살짝 수정하여 저도 문제를 해결할 수 있었습니다.

 

현재 좀 할게 많은 상태기도하고 이를 구현한 깃허브 레포지토리만 남겨놓겠습니다.

https://github.com/mtjin/bungsegwon-android

 

GitHub - mtjin/bungsegwon-android

Contribute to mtjin/bungsegwon-android development by creating an account on GitHub.

github.com

 

 

저와 같은 문제를 겪은 분들은 샘플 프로젝트를 보면 해결하실 수 있을 것 같습니다.

 

 

 

댓글과 공감은 큰 힘이 됩니다. 감사합니다. !!!

 

 

728x90
Comments