选择PagerAdapter.setPrimaryItem()
的新网页后,为什么ViewPager.setCurrentItem(index)
被多次调用(使用相同的值)?
答案 0 :(得分: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();
}
}
}
答案 1 :(得分:0)
我认为PagerAdapter.setPrimaryItem()
被叫多次是因为ViewPager.setOffscreenPageLimit(int)
有关更多信息,请参见官方文档:
https://developer.android.com/reference/kotlin/androidx/viewpager/widget/ViewPager#setOffscreenPageLimit(kotlin.Int)