반응형
ViewPager2를 사용할때
notifyDataSetChanged()를 호출 후 Fragment의 ui를 변경해 줘야 할 떄가 있습니다.
그러기 위해서는 다음과 같이 작업하면 됩니다.
Adapter에서
override fun onBindViewHolder(
holder: FragmentViewHolder,
position: Int,
payloads: MutableList<Any>
) {
val fragment = fa.supportFragmentManager.findFragmentByTag("f$position")
fragment?.let{
if( it is UploadImageFragment){
it.updateItem(uploadList[position])
}
}
super.onBindViewHolder(holder, position, payloads)
}
위와 같이 onBindViewHolder를 호출하고
fragment가 null이 아닐 떄 그 fragment에 update관련 함수를 만들고 호출하여 업데이트를 해주도록 합니다.
fragment가 null이 아닐때 체크하는 이유는 viewpager에 아무런 데이터가 없는데 notifyDataSetChanged 가 불리면 supportFragmentManager에서 항목을 찾으면 없기 때문에 이때 null이 들어올 수 있고, 이때 이 fragment를 사용하면 앱이 죽기 떄문 입니다.
반응형
'2023년 이전 > Android' 카테고리의 다른 글
Activity 동작 및 Flag (0) | 2021.12.03 |
---|---|
Camera 촬영 후 해상도가 낮아지는 현상 해결 방법 (1) | 2021.12.03 |
이미지 & 동영상 정보 가져오는 방법 (0) | 2021.12.03 |
onActivityResult / onRequestPermissionsResult deprecated (0) | 2021.12.03 |
Hilt를 사용한 ViewModel (0) | 2021.12.03 |