我使用FragmentStatePagerAdapter实现了view pager。我在视图中使用了3个片段。视图寻呼机显示所有3个带有视图的选项卡,现在我的问题是第三个片段不可见,但我可以滚动到第三个选项卡,当我向后滚动时,我看到第二个片段但是第一个片段消失了,剩下的就是第二个碎片。
mPager = (ViewPager)mContext.findViewById(R.id.viewPager);
mPager.setOnPageChangeListener(this);
mPagerAdapter = new MyPagerAdapter(mContext.getSupportFragmentManager(),mContext);
mPager.setAdapter(mPagerAdapter);
适配器代码
public class MyPagerAdapter extends FragmentStatePagerAdapter {
private int NUM_PAGES = 3;
List<Fragment> listFragment = new ArrayList<Fragment>();
private MyActivity mContext;
public MyPagerAdapter(FragmentManager fragmentManager, MyActivity mActivity) {
super(fragmentManager);
this.mContext = mActivity;
listFragment.add(new FirstFragment());
listFragment.add(new SecondFragment());
listFragment.add(new ThirdFragment());
}
@Override
public int getItemPosition(Object object){
return PagerAdapter.POSITION_NONE;
}
@Override
public Fragment getItem(int position) {
Log.v("fragment position",""+position);
return listFragment.get(position);
}
@Override
public int getCount() {
return NUM_PAGES;
}
}
我被困在这一段时间,我真的很感激一些帮助。谢谢。
答案 0 :(得分:1)
建议使用FragmentPagerAdapter而不是FragmentStatePagerAdapter,因为这两者非常本质。 FragmentStatePagerAdapter正能够滚动浏览无限视图。如果是固定数量的情况,就像你的情况一样,你应该使用FragmentPagerAdapter。
如果碰巧有上下文问题,请稍后覆盖以下方法:
@Override
public Object instantiateItem(ViewGroup container, int position) {
Fragment fragment = (Fragment) super.instantiateItem(container, position);
mFragments.remove(position);
mFragments.add(position, fragment);
return fragment;
}
mFragments是你的名单。