为什么在我使用PagerAdapter.setPrimaryItem()选择一个新页面后,会多次调用ViewPager.setCurrentItem(index)(使用相同的值)?

最佳答案

是的,对我来说,它甚至不停地呼唤。但是,如果需要调用一次,这里有一个简单的解决方案

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

07-24 09:47