Tengo tres páginas (Fragmentos) dentro de un ViewPager, sin embargo, solo quiero mostrar un elemento de menú para dos de esas páginas.
El código dado 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 que super no se puede configurar. El sistema nunca lo llama, e incluso si fuera así, ¿cómo determinaría qué página se muestra en este momento? ¿Podría tener alguna ayuda aquí?
android
android-widget
android-viewpager
Andrew Rabon
fuente
fuente

Respuestas:
Usa el
ViewPager.onPageChangeListener:fuente
ViewPager.setOnPageChangeListenerestá en desuso ahora. Ahora necesita usarViewPager.addOnPageChangeListeneren su lugar.por ejemplo,
fuente
addOnPageChangeListener.ViewPager.SimpleOnPageChangeListeneryViewPager.OnPageChangeListenercomo mencionamos anteriormente?También puede usar en
ViewPager.SimpleOnPageChangeListenerlugar deViewPager.OnPageChangeListenery anular solo los métodos que desea usar.Espero que esto ayude :)
Editar: según las API de Android,
setOnPageChangeListener (ViewPager.OnPageChangeListener listener)está en desuso. Verifique esta URL: - API de Android ViewPagerfuente
mViewPager.setOnPageChangeListener();está en desuso ahora, este funciona bien.Usuarios de Kotlin ,
Actualización 2020 para ViewPager2
fuente
Para ViewPager2,
donde
OnPageChangeCallbackes una clase estática con tres métodos:fuente