将ViewPager替换为单个片段之后:
fragmentManager.beginTransaction ().replace ( R.id.content_frame, fragment ).commit ();
如果我向右滚动 - 这不应该是因为只有一个页面 - 我在 onPageSelected 上得到一个IllegalStateExceptio,因为显然OnPageChangeListener仍处于活动状态。
我该如何处理?
mViewPager.setOnPageChangeListener ( new ViewPager.OnPageChangeListener () {
@Override
public void onPageSelected ( int position ) {
mActionBar.setSelectedNavigationItem ( position );
}
@Override
public void onPageScrolled ( int arg0, float arg1, int arg2 ) {
}
@Override
public void onPageScrollStateChanged ( int arg0 ) {
}
} );
答案 0 :(得分:0)
这是一个hackish解决方法。必须有一个更好的方法,但它的工作原理。要禁用分页,请将viewpager适配器设置为0页。
public class EmptyPagerAdapter extends FragmentStatePagerAdapter {
public EmptyPagerAdapter ( FragmentManager fm ) {
super ( fm );
}
@Override
public Fragment getItem ( int index ) {
return null;
}
@Override
public int getCount () {
return 0;
}
}