with viewpager studio fragments example ejemplo android android-widget android-viewpager

android - studio - viewpager in fragment



Determinar cuándo un ViewPager cambia de página (4)

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í?


Para Kotlin,

view_pager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { override fun onPageScrollStateChanged(state: Int) { } override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) { } override fun onPageSelected(position: Int) { } })


También puede usar ViewPager.SimpleOnPageChangeListener lugar de ViewPager.OnPageChangeListener y anular solo aquellos métodos que quiera usar.

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á en desuso. Verifique esta URL: - Android Viewer API


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