viewPager嵌套fragment的数据刷新

来源:互联网 发布:淘宝欢乐逛如何使用 编辑:程序博客网 时间:2024/06/05 04:15

        最近在做搜索的开发,遇到viewPager嵌套fragment的数据刷新的问题,在网上搜了搜没有搜到自己想要的答案,就自己写了一个,亲测有效,希望可以帮到遇到这类问题的小伙伴;

        刚开始的时候我在我的baseFragment里添加了一个刷新的方法,其他的fragment继承:

public abstract class SearchBaseFragment extends BaseFragment {     public abstract void upDate(String data) ;}

现在看看我的其中一个SearchFragment实现:

/** * 更新数据 * @param data */@Overridepublic void upDate(String data) {    this.data = data;}

当数据变化的时候,刷新viewpager,viewpager刷新的方法,有几种这里我用的是重写

public int getItemPosition(Object object) {    //POSITION_NONE 刷新所有的 Item    return PagerAdapter.POSITION_NONE;}
什么时候调用upDate()方法呢,调用了viewpager的notifychanged的方法后viewpager会重走instantiateItem方法,在这个方法里我是这么做的

@Overridepublic Object instantiateItem(ViewGroup container, int position) {    searchBaseFragment = ((SearchBaseFragment) super.instantiateItem(container, position));    if (mData!=null&&mData.length()>0){        searchBaseFragment.upDate(mData);    }    return searchBaseFragment;}
这样我们要更新的数据通过fragment里了,不知道同学们看到我的SearchFragment里的upDate方法会不会有疑问,为什么只是接收一下数据,并没有做实质性的操作,这是因为viewpager刷新的时候fragment会重走oncreate方法,所以你在update里的用的对象会为空,所以你只需在此方法里做接收,在SearchFragment里我会初始化数据后,更新数据的时候直接时候传过来的data值即可。

是不是很简单呢,第一次写博客,希望能帮到你!!!


阅读全文
4 0
原创粉丝点击