博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BaseLoadDataForNetFragment
阅读量:4961 次
发布时间:2019-06-12

本文共 1900 字,大约阅读时间需要 6 分钟。

/** * Fragment 加载网络请求 */public abstract class BaseLoadDataForNetFragment extends Fragment {    // 视图是否初始化完成    protected boolean isViewInitiated;    // 界面是否可见    protected boolean isVisibleToUser;    // 数据是否加载    protected boolean isDataInitiated;    @Override    public void onActivityCreated(Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        isViewInitiated = true;        prepareFetchData();    }    @Override    public void setUserVisibleHint(boolean isVisibleToUser) {        super.setUserVisibleHint(isVisibleToUser);        this.isVisibleToUser = isVisibleToUser;        prepareFetchData();    }    private void prepareFetchData() {        // 不设置为需要每次可见的时候都强制刷新界面        prepareFetchData(false);    }    /**     * 设置true,可强制刷新界面     *     * @param forceUpdate 是否强制刷新界面     * @return     */    protected void prepareFetchData(boolean forceUpdate) {        if (isVisibleToUser && isViewInitiated && (!isDataInitiated || forceUpdate)) {            fetchDataForNet();            isDataInitiated = true;        }    }    /**     * 刷新数据,网络刷新数据     */    public abstract void fetchDataForNet();}

fragment中请求网络。。

子fagnment 复用已经加载的数据

@Nullable    @Override    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        WLog.d("onCreateView");        View mView = inflater.inflate(R.layout.fragment_my_order, container, false);        mNoDataTV = (TextView) mView.findViewById(R.id.fragment_order_tv_no_data);        mShowLoading = (LinearLayout) mView.findViewById(R.id.fragment_order_ll_loading);        // 子界面可以重用网络加载的数据        if (isDataInitiated) {            WLog.d("数据已经加载过...无需再次请求数据");            //mShowLoading.setVisibility(View.GONE);            //mNoDataTV.setVisibility(View.VISIBLE);        }        return mView;    }

 

转载于:https://www.cnblogs.com/H-BolinBlog/p/9007340.html

你可能感兴趣的文章
HDU-1171 Big Event in HDU(生成函数/背包dp)
查看>>
Babel 是干什么的
查看>>
cocos2dx-3.0(8)------Label、LabelTTF、LabelAtlas、LabelBMFont使用之法
查看>>
Mysql数据库乱码总结
查看>>
BZOJ.3160.万径人踪灭(FFT Manacher)
查看>>
CODE[VS] 1842 递归第一次
查看>>
20180418小测
查看>>
Spring Cloud是怎么运行的?
查看>>
12 联结表
查看>>
数字三角形
查看>>
NGUI 减少drawcall规则
查看>>
三元表达,匿名函数
查看>>
前端笔记-基础笔记
查看>>
【LeetCode & 剑指offer刷题】查找与排序题6:33. Search in Rotated Sorted Array(系列)
查看>>
GNU/Linux超级本ZaReason Ultralap 440体验
查看>>
将github上托管的代码 在我的域名下运行
查看>>
【Manthan, Codefest 18 (rated, Div. 1 + Div. 2) C】Equalize
查看>>
【codeforces 767A】Snacktower
查看>>
【MemSQL Start[c]UP 3.0 - Round 1 C】 Pie Rules
查看>>
Ognl中“%”、“#”、“$”详解
查看>>