ViewPager+Fragmnet组合动态添加和删除Fragment

来源:互联网 发布:阿里云日本服务器 编辑:程序博客网 时间:2024/06/02 03:58

ViewPager+Fragmnet组合动态添加和删除Fragment

最近项目需求需要动态的去刷新ViewPager

PagerAdapter mPagerAdapter = new PagerAdapter(getChildFragmentManager(), arrays);mPagerAdapter.notifyDataSetChanged();   

然而notifyDataSetChanged();并不起作用


  • 查阅相关资料,继承FragmentStatePagerAdapter才能做到动态添加和删除

private class PagerAdapter extends FragmentStatePagerAdapter {    private String[] title;    PagerAdapter(FragmentManager fm, String[] title) {        super(fm);        this.title = title;    }    @Override    public CharSequence getPageTitle(int position) {        return title[position];    }    @Override    public Fragment getItem(int position) {        return mPagerFragmentList.get(position);    }    @Override    public int getCount() {        return title.length;    }    @Override    public void destroyItem(ViewGroup container, int position, Object object) {        //解决viewpager重复加载数据    }    @Override    public int getItemPosition(Object object) {        //实现重新加载需返回此值        return PagerAdapter.POSITION_NONE;    }}
  • 完整代码在初始化之前 先移除View,然后在创建PagerAdapter,在setAdapter

mPager.removeAllViews();mPager.removeAllViewsInLayout();    PagerAdapter mPagerAdapter = new PagerAdapter(getChildFragmentManager(), arrays);mPager.setAdapter(mPagerAdapter);mTab.setupWithViewPager(mPager);         
阅读全文
0 0