일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Android
- 예제
- 디버깅
- 안드로이드
- 빌드 오류
- not working
- 안됨
- 데이터바인딩
- aPK
- react
- AWS
- sourcetree
- gradle
- 설정
- 안드로이드 스튜디오
- EC2
- Kotlin
- VisualStudio
- 개발환경설정
- 리액트 네이티브
- 뒤로가기 안됨
- bitbucket
- flutter
- 인증문제해결
- Invalid credentials
- WPF
- Git
- git인증
- 리액트
- react-native
- Today
- Total
목록liveData (2)
물에 살고싶은 개발자
전제 안드로이드 MVVM 구조와 JetPack의 네비게이션,데이터바인딩을 사용하고 있으며, koin의 by sheardViewModel() 을 이용해 여러 Fragment에서 ViewModel을 공유하고 있다. 원인 여러 Fragment에서 ViewModel을 공유하다보니, 데이터의 상태가 유지되어 이전 화면으로 돌아갈 경우 세팅되어있던 데이터가 유지되는것은 좋았으나, 옵저빙에서 네비를 태운 경우 돌아가자마자 다시 observe가 호출되어 다시 앞 화면으로 돌아가는 경우가 생겼다. 즉, Fragment가 세팅됨과 동시에 데이터 변경이 없었음에도 변경된 이력이 있는 LiveData를 다시 옵저빙해 다시 네비를 태우는것. 해결책 네비게이션을 쓰는 경우 무지성으로 LiveData를 상속받아 만든 SingleL..
언제나 그랫듯, 선결론 옵저빙으로 화면을 넘긴 경우 되돌아오면서 다시 같은화면으로 이동시켜서 생긴 문제다. 옵저빙으로 화면을 넘길때 항상 해당 라이브데이터를 바꿔주든 해서 관리해야한다. 즉 ! 뷰모델에 있는 라이브데이터를 이용해 navigate 시킬 경우 아래 예제를 보자. ViewModel.kt ... var onBoardingNav: MutableLiveData = MutableLiveData(false) ... OnBoardingFragment.kt onBoardingNav.observe(viewLifecycleOwner) { navController.navigate(R.id.action_onBoardingFragment_to_loginMainFragment) } Fragment에서 이런식으로 화면..