Determinar cuándo un ViewPager cambia páginas

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

El código dado en una respuesta anterior de SO 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. Nunca es llamado por el sistema, e incluso si fuera cómo iba a determinar qué página se estaba mostrando en este momento? ¿Podría tener alguna ayuda aquí?

Utilice ViewPager.onPageChangeListener :

 viewPager.setOnPageChangeListener(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á obsoleto ahora. Ahora necesitas usar ViewPager.addOnPageChangeListener .

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) { } }); 

También puede utilizar ViewPager.SimpleOnPageChangeListener lugar de ViewPager.OnPageChangeListener y reemplazar sólo los métodos que desea utilizar.

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

Espero que esto ayude 🙂

Editar: Según las API de Android, setOnPageChangeListener (ViewPager.OnPageChangeListener listener) está obsoleto. Por favor, compruebe esta url: – Android ViewPager API

  • Cómo cambiar las imágenes predeterminadas de CheckBox
  • Colocar ViewPager como una fila en ListView
  • Cómo establecer el color de borde para EditText para error de validación
  • Un diseño relativo simple, alinear con el derecho de los padres no funciona
  • Widget minwidth para tener N columnas?
  • Cómo hacer que el encabezado ListView esté estático
  • ¿Cómo dividir la pantalla en tres partes verticalmente?
  • Deshabilite la capacidad de edición y el enfoque de EditText (como TextView)
  • Android EditText maxLength permite al usuario escribir más
  • Cómo cambiar el estilo selector de números en Android?
  • Cómo actualizar dinámicamente un ListView en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.