Определите, когда ViewPager меняет страницы

У меня есть три страницы (fragmentы) внутри ViewPager, однако я хочу отобразить только элемент меню для двух из этих страниц.

Код, приведенный в предыдущем ответе SO , не работает:

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

Eclipse говорит, что @Override не требуется, и супер не может быть установлен. Система никогда не вызывалась системой, и даже если бы я мог определить, какая страница отображается в данный момент? Могу ли я помочь?

    Используйте 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 устарел. Теперь вам нужно использовать ViewPager.addOnPageChangeListener .

    например,

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

    Вы также можете использовать ViewPager.SimpleOnPageChangeListener вместо ViewPager.OnPageChangeListener и переопределять только те методы, которые вы хотите использовать.

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

    Надеюсь эта помощь 🙂

    Изменить: согласно API-интерфейсам Android, setOnPageChangeListener (ViewPager.OnPageChangeListener listener) устарел. Проверьте этот URL: – Android ViewPager API

    Для Котлина,

     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) { } }) 
    Давайте будем гением компьютера.