我正在使用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);