반응형
bottomnavigationview의 fragment 를 강제로 바꿔주는 코드를 구현 중이었음.
val bottomNav = activity?.findViewById<BottomNavigationView>(R.id.bottom_nav)
bottomNav?.selectedItemId = R.id.dreamlist
근데 터짐. 어떻게 해결할 것인가.
먼저, navigation 이동 시에 fragment 재생성을 방지하도록 아래 코드(KeepStateNavigator) 를 사용하고 있었다.
GitHub - STAR-ZERO/navigation-keep-fragment-sample
Contribute to STAR-ZERO/navigation-keep-fragment-sample development by creating an account on GitHub.
github.com
근데 여기서
transaction.commitNow()
이 녀석이 문제였다.
transaction.commit()
으로 바꿔주면 해결된다.
commitNow는 commitNow 하려는 transaction이 백스택에 있으면 안된다.
commit은 비동기적으로 transaction을 수행한다.
[Reference]
[번역]다양한 종류의 commit()
FragmentTransaction에 적절한 commit()을 사용해봅시다.
medium.com
지원 라이브러리 25.1.0의 새로운 기능, Android는 onBackStackChanged ()에서 commitNow ()를 허용하지 않습니
최근에 지원 라이브러리 24에서 최신 지원 라이브러리로 앱을 업그레이드했습니다.
ichi.pro
반응형
'프로그래밍 > App 개발' 카테고리의 다른 글
[Android] 반복알림(notification) 구현 (4) | 2022.06.13 |
---|---|
[Android] SharedPreferences generic (kotlin) (2) | 2022.03.03 |
비동기 작업 관리 회고, Type 과 State (0) | 2022.02.18 |
[Android] How to dynamically change height of RecyclerView inside NestedScrollview when items are added or deleted (0) | 2022.02.16 |
[Android] Custom DialogFragment 좌우 너비 꽉 차게 (0) | 2022.01.27 |