안드로이드에서 ViewPager를 사용할 때, 현재 보고있는 Fragment를 알아내는 것은 여간 골치아픈 일이 아니다.
Fragment 내에서 OnResume()가 호출되는 순간으로는 올바르게 알아 낼 수 없다.
onPageChangeListener 등을 쓰는 방법도 있겠지만, 아주 간단하게 구현할 수 있는 방법이 있다.
바로 setUserVisibleHint 메소드를 오버라이드 하는 방법이다.
Android Support Library (rev 11) 에서도 사용이 가능하다.
적용하고자 하는 Fragment에서 다음과 같이 사용하자.
1
2
3
4
5
6
7
8
9
|
@Override public void setUserVisibleHint(boolean isVisibleToUser) { if (isVisibleToUser) { // 보인다. } else { // 안보인다. } super.setUserVisibleHint(isVisibleToUser); } |