如何在viewPager中添加或删除片段(在现有片段之间)?

时间:2015-07-15 19:09:10

标签: android android-viewpager fragmentstatepageradapter

我正在使用ViewPager处理FragmentStatePagerAdapter,我遇到了一些麻烦,无法动态地将新片段添加到viewPager / Adapter。 我有一个“添加”按钮,我可以按,然后,在另外两个现有片段之间插入一个新片段。

例如:初始片段列表:

{Fragment 1, Fragment 2}

点击片段1上的“添加”:

{Fragment 1, New Fragment, Fragment 2}

如果图片未加载,则为link

这是用户按“+”

时调用的方法代码
public void actionPerformed(int action, int pageNumber){
    switch (action){
        case 0:
            Log.e("", "Add em " + pageNumber + 1);
            mFragmentList.add((pageNumber + 1), MyFragment.newInstance("99"));
            mPageAdapter.notifyDataSetChanged();
            mViewPager.setCurrentItem((pageNumber + 1));

            currentPage = (pageNumber + 1);
            pageTotal += 1;
            updatePageCount();
            break;

问题是我无法在没有收到错误消息的情况下访问最近添加的片段。

这是我的PagerAdapter代码:

private ArrayList<MyFragment> mFragmentList;

public MyPageAdapter(FragmentManager fm, ArrayList<MyFragment> fragments){
    super(fm);
    this.mFragmentList = fragments;
}

@Override
public int getItemPosition(Object object) {
    int index = mFragmentList.indexOf(object);
    if(index == -1){
        return POSITION_NONE;
    }else{
        return index;
    }
}

@Override
public Fragment getItem(int i) {
    return mFragmentList.get(i);
}

@Override
public int getCount() {
    return mFragmentList.size();
}

最后,用于初始化变量的代码:

mViewPager = (ViewPager) findViewById(R.id.viewPager);
mViewPager.setOffscreenPageLimit(12);
mPageAdapter = new MyPageAdapter(getSupportFragmentManager(),mFragmentList);
mViewPager.setAdapter(mPageAdapter);

0 个答案:

没有答案