안드로이드
[Android, setUserVisibleHint] 뷰페이저에서 보인 화면만 데이터 받아오기
Black-Jin
2018. 6. 4. 17:23
반응형
안녕하세요 블랙진 입니다.
한국에서는 카카오톡 앱을 많이 사용하는데 이는 4개의 ViewPager 로 구성되어 있습니다.
그렇지만 다른 화면으로 스와이프 했을 때, 해당 화면이 보여지고 나서 데이터를 서버로 부터 받아오는 것을 확인 할 수 있습니다.
이렇게 해당 뷰가 보여졌을 때 반응 할 수 있게 도와주는 함수가 setUserVisibleHint 입니다.
ViewPager 설정할 AFragment 가 아래와 같이 있습니다.
class AFragment : Fragment() {
...
override fun setUserVisibleHint(isVisibleToUser: Boolean) {
super.setUserVisibleHint(isVisibleToUser)
Log.v("AFragment", "setUserVisibleHint $isVisibleToUser")
if(isVisibleToUser) {
//데이터 받아오기
}
}
}
이 때 해당 프레그먼트에서 setUserVisibleHint 를 override 할 수 있습니다.
이는 다른 화면이 보여지고 있을 때 false 값을 return 하고 해당 화면이 보여지면 true 값을 return 합니다.
이 값을 통해 내가 원하는 뷰가 ViewPager 상에 보여 줬을 때, 통신을 할 수 있도록 설정 할 수 있습니다.
반응형