Determinar cuándo un ViewPager cambia de página

Tengo tres páginas (Fragmentos) dentro de una ViewPager, sin embargo, solo quiero mostrar un elemento de menú para dos de esas páginas.

El código proporcionado en una respuesta SO anterior no parece funcionar:

@Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (isVisibleToUser == true) { } else if (isVisibleToUser == false) { } } 

Eclipse dice que @Override no es necesario y super no se puede establecer. El sistema nunca lo llama, e incluso si fuera así, ¿cómo iba a determinar qué página se estaba mostrando en este momento? ¿Podría tener algo de ayuda aquí?

Use ViewPager.onPageChangeListener :

 viewPager.addOnPageChangeListener(new OnPageChangeListener() { public void onPageScrollStateChanged(int state) {} public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {} public void onPageSelected(int position) { // Check if this is the page you want. } }); 

ViewPager.setOnPageChangeListener está en desuso ahora. Ahora necesita usar ViewPager.addOnPageChangeListener en ViewPager.addOnPageChangeListener lugar.

por ejemplo,

 viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } });