Android:PagerAdapter的setPrimaryItem()不止一次被调用

Dan*_*e B 15 android android-viewpager

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

Lai*_*iux 17

是的,对我而言,它甚至无限呼唤.但是,如果您需要调用一次,这是一个简单的解决方案

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();
      }
  }
}
Run Code Online (Sandbox Code Playgroud)