我的ViewPager有问题。在设置ViewPager.setCurrentItem之后,没有调用onPageSelected ViewPager的方法。这是我的代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
mMyFragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager());
mViewPager.setAdapter(mMyFragmentPagerAdapter);
mViewPager.setCurrentItem(999);
mViewPager.addOnPageChangeListener(new OnPageChangeListener() {
public void onPageSelected(int currentIndex) {
current_posisition_page = currentIndex;
PageFragment page = ((MyFragmentPagerAdapter) mViewPager.getAdapter()).getFragment(current_posisition_page);
page.checkSetContentData();
}
public void onPageScrolled(int arg0, float arg1, int arg2) { /* Nothing to do here */ }
public void onPageScrollStateChanged(int arg0) { /* Nothing to do here */ }
});
....
}
上面的代码,当活动创建时,viewpager跳转到索引999页面。但是内部 onPageSelected 的代码不会自动调用。当我滑动索引988页面然后再返回索引999页面时它才起作用。那怎么解决呢?谢谢对我的Englsih。
答案 0 :(得分:1)
尝试在调用setCurrentItem()
之前添加侦听器。
答案 1 :(得分:0)
你应该这样做:
mViewPager.addOnPageChangeListener(this);
onPageChanged(999);
mViewPager.setCurrentItem(999);
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
// your code
}
@Override
public void onPageScrollStateChanged(int state) {
}