如上图界面,动态添加删除Tab和页面,请教大神们有什么好的思路?
我用viewpager+fragment的方式,每次添加或者删除页面之后,其他页面的状态都不能保存,例如我动态添加了fragmentA、fragmentB两个页面,我在fragmentA页面里面通过点击按钮A动态添加一个ALayout布局,当我把fragmentB页面删除掉之后,这个ALayout布局在fragmentA页面也会失去掉,所以请教大神们有没有更好的思路。。
ps : 附上我动态添加删除的viewpager的Adapter的代码:
public class PagerAdapter extends FragmentStatePagerAdapter {
public List<TitleViewBean> mFragments = new ArrayList<TitleViewBean>();
private ViewPager mPager;
//当前View
// private Fragment mPrimaryItem;
public MyPagerAdapter(FragmentManager fm, ViewPager vp) {
super(fm);
mPager = vp;
}
@Override
public Fragment getItem(int position) {
return mFragments.get(position).getFragment();
}
@Override
public int getCount() {
return mFragments.size();
}
@Override
public void setPrimaryItem(ViewGroup container, int position,
Object object) {
super.setPrimaryItem(container, position, object);
// mPrimaryItem = (Fragment) object;
}
@Override
public int getItemPosition(Object object) {
// 加上这个判断之后添加功能没问题,
// 添加完页面之后,其它已添加的页面也不会刷新,
// 但是删除的时候就出现空白页面
// if (object == mPrimaryItem) {
// return POSITION_UNCHANGED;
// }
//要使Adapter的notifyDataSetChanged()方法生效,
// 除了Adapter需要继承FragmentStatePagerAdapter之外,
// 还需要这里设置返回值为POSITION_NONE
return POSITION_NONE;
}
public void addPage(TitleViewBean titleViewBean) {
mFragments.add(mFragments.size(), titleViewBean);
this.notifyDataSetChanged();
//每次添加都自动跳到最后一个页面
mPager.setCurrentItem(mFragments.size(), false);
//每次动态添加、删除页面之后重新设置viewpager的缓存数量
mPager.setOffscreenPageLimit(mFragments.size());
}
/**
* This method removes the pages from ViewPager
*/
public void removePages(int position, long tag) {
mFragments.remove(position);
mPager.removeViewAt(position);
this.notifyDataSetChanged();
//每次动态添加、删除页面之后重新设置viewpager的缓存数量
mPager.setOffscreenPageLimit(mFragments.size());
}
}