android
android fragment lifecycle adapter 위치 정리
무삿
2022. 4. 25. 20:49
insta clone coding을 하는 도중 궁금한 게 생겨 정리해보려고 한다.
fragment에 Recyclerview adapter를 연결해야 했는데 어느 시점에 만들어야 할지 정확히 몰랐다.
onCreateView와 onViewcreated 둘 중에 어디로 보낼지 헷갈렸다.
그래서 Fragment의 LifeCycle에 대해 검색하였고 공홈에서 알게 되었다.
일단 Fragment의 생명주기에 대해 사진으로 보면
view를 만들 때 Activity 랑 비슷하지만 조금 길다.
그럼 여기 중에 내가 Adapter를 넣어야 하는 곳은 어디일까??
검색해 보니 공식 홈에 onCreateView()에서 작업하라고 나와있다.
LiveData, RecyclerView, ViewPager2 adpater 등을 이곳에서 update , set up 하기 적합한 곳이라고 한다.
여러 블로그를 참조해 본 결과
- onCreate() -> 리소스 초기화 작업을 하는 곳
- onCreateView() -> 여기서 뷰를 그려야 한다.
- onViewCreated() -> 뷰를 변경하고 싶을 때 이곳에서 변경한다.
- onViewStateRestored() -> 이 상태는 fragment의 view에 상태를 저장하는 시점이다. 저장은 SparseArray <Parcelable> 타입의 mSavedViewState를 가지고 있고 onViewCreated()에서 넘어올 때 state를 가지고 있으면 복구한다. 그리고 onStart()로 넘어가고 다른 activity or fragmentn로 가게 되면 onResume()에서 onPause()로 넘어가고 onStop 직후 view 상태를 state에 저장한다. 그 후 DestoryView 하고 넘어가는 fragment는 onCreateView 하고 onViewCreated 지나서 state를 채우고 나중에 사용한다.