본문 바로가기

Android

[TIP] viewpager에서 현재 보여지는 페이지 알아내기

fragment로된 viewPager를 사용하다 보면 현재 페이지가 보여진 상태인지 알아야 할 때가 있다.

여러가지 방법이 있겠지만 그중 fragment 에서 제공하는 메소드가 있다.


- setUserVisibleHint()


fragment를 상속받은 fragment에서, 안드로이드 스튜디오를 기준으로 컨트롤+O를 눌러 setUserVisibleHint()를

@overide 받는다


@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
}
오버라이드를 하면 위와 같은 형태를 띄는데 isVisibleToUser 변수로 현재 페이지의 viewing 여부를 알 수 있다.
isVisibleToUser가 true를 준다면 현재 보여지는 상태이고 false를 준다면 현재 보여지지 않는 상태이다.

실제로 사용한다면 이렇게 사용하면 된다.

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    if(isVisibleToUser){
        //visible
    }else{
        //invisible
    }
}

viewpager에서 각 페이지당 GA를 심거나, 무언가 처리를 할때 유용하게 쓸수 있을것 같다.