Android: PagerAdapter setPrimaryItem() вызывается более одного раза

Почему PagerAdapter.setPrimaryItem() вызывается более одного раза (с одинаковыми значениями) после того, как я выбираю новую страницу с ViewPager.setCurrentItem(index)?

Ответы

Ответ 1

Да, для меня это даже продолжало звонить бесконечно. Однако, если вам нужно что-то вызывать один раз, вот простое решение

public class MyPagerAdapter extends PagerAdapter {
    private int lastPosition = -1;

    @Override public void setPrimaryItem(ViewGroup container, int position, Object object) {
      super.setPrimaryItem(container, position, object);

      // Only refresh when primary changes
      if(lastPosition != position) {
        lastPosition = position;

        yourFunction();
      }
  }
}