ViewPager는 원래 현재 페이지의 이전 페이지와 다음 페이지를 미리 생성하는 특성을 가지고 있고
(터치 슬라이드 이벤트에 바로 이전이나 다음 페이지가 함께 보여야 하기 때문이죠)
setoffscreenpagelimit로 설정한 페이지만큼 메모리내에 페이지를 가지고 있습니다. (default는 1)
그래서 질문하신 것과 같은 동작을 하려면 실제 페이지가 지금 화면에 보여지고 있는가를 판별하는 알고리즘이 필요합니다.
근데 그 알고리즘은 instantiateItem에서 생성하고 있는 아이템이 뭔가(View인지 Fragment인지 등등..)에 따라 구현이 달라지기 때문에
그 부분에 대해 추가적인 내용이 있어야 도와드릴 수 있겠네요.