一旦我滑动打开第3个片段,如何从viewpager适配器中删除前2个片段?

时间:2016-03-30 06:54:22

标签: android-fragments android-viewpager

我在视图寻呼机适配器中有三个片段。我可以从左向右或从右向左滑动并显示这些碎片。但是,我希望防止用户在访问第三个片段后再向后滑动。就像,他打开第三个片段后,他不应该能够查看前两个片段

public class PagerAdapter扩展了FragmentPagerAdapter {

FragmentManager mFragmentManager;
private ArrayList<View> views = new ArrayList<View>();

public PagerAdapter(FragmentManager fm) {

    super(fm);
    mFragmentManager = fm;
}

@Override
public Fragment getItem(int i) {

        switch (i)
        {
            case 0 :
                return new FragmentOne();

            case 1 :
                return new FragmentTwo();

            case 2 :
                return new FragmentThree();

            default :
                break;
        }

    return null;
}

@Override
public int getCount() {
    return 3;
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
    View v = views.get (position);
    container.addView (v);
    return v;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
    container.removeView(views.get(0));
}

}

1 个答案:

答案 0 :(得分:0)

是的,你应该可以。结帐android开发者文档。 FragmentPagerAdapter

  

public void destroyItem(ViewGroup容器,int位置,Object对象)

     

删除指定位置的页面。适配器负责从容器中删除视图,但它必须确保在从finishUpdate(ViewGroup)返回时完成此操作。