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.setOnPageChangeListener
está en desuso ahora. Ahora necesita usarViewPager.addOnPageChangeListener
en su lugar.por ejemplo,
fuente
addOnPageChangeListener
.ViewPager.SimpleOnPageChangeListener
yViewPager.OnPageChangeListener
como mencionamos anteriormente?También puede usar en
ViewPager.SimpleOnPageChangeListener
lugar deViewPager.OnPageChangeListener
y 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
OnPageChangeCallback
es una clase estática con tres métodos:fuente