Intereting Posts

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

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

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

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

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

Solutions Collecting From Web of "Определите, когда ViewPager меняет страницы"

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