viewpager+fragment+Tab动态添加删除,求大神指教有什么好思路



如上图界面,动态添加删除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());
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值