210202
[LiveData] Fragment간 ViewModel 공유 시 LiveData의 값이 안바뀌는 현상 본문
Fragment간에 ViewModel 공유 시 LiveData의 값이 안바뀌는 경우를 경험해서 이를 어떻게 해결하는지 적어본다.
나는 ViewModel을 생성할때 ViewModelProvider(this).get(~)로 그냥 넘겼었는데 이렇게하면 ViewModel의 인스턴스를 생성할 때 각기 다른 ViewModel로 생성된다는걸 모르고있었다. 그래서 이름은 같은 ViewModel의 LiveData에 값을 넣었지만 인스턴스는 다르기때문에 값이 제대로 들어가지 않았다.
Fragment 사용시에는 ViewModel의 인스턴스를 생성할때 다음과 같이 생성해야 같은 인스턴스로 ViewModel을 사용할 수 있다.
ViewModelProvider(requireActivity().viewModelStore).get(~)
'Android' 카테고리의 다른 글
안드로이드 크기 단위(dp,sp 등) 비교 (0) | 2023.09.24 |
---|---|
BottomNavigation + Jetpack Navigation 버그findNavController().navigate()로 이동한 뒤 BottomNavigation으로 이동시 원래 Fragment로 돌아오지 않음 (0) | 2022.07.19 |
[ViewModel] ViewModel 사용이유 , ViewModelProvider 작동방식 (0) | 2021.03.24 |
[Retrofit guide] Retrofit 초보자를 위한 가이드(ppt와 설명, 예시까지) (2) | 2021.03.11 |
[Jacoco] TDD를 위한 Jacoco 적용해보기 (1) | 2021.03.08 |
Comments