• Fragment懒加载


    1.懒加载Fragment:

     1 public abstract class LazyFragment extends Fragment {
     2     boolean isViewPrepared; // 标识fragment视图已经初始化完毕
     3     boolean hasFetchData; // 标识已经触发过懒加载数据
     4 
     5 
     6     @Override
     7     public void setUserVisibleHint(boolean isVisibleToUser) {
     8         super.setUserVisibleHint(isVisibleToUser);
     9         if (isVisibleToUser) {//当当前为显示页面时
    10             lazyFetchDataIfPrepared();
    11         }
    12     }
    13 
    14     @Override
    15     public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    16         super.onViewCreated(view, savedInstanceState);
    17         isViewPrepared = true;
    18     }
    19 
    20     @Override
    21     public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    22         super.onActivityCreated(savedInstanceState);
    23         lazyFetchDataIfPrepared();
    24     }
    25 
    26     void lazyFetchDataIfPrepared() {
    27         // 用户可见fragment && 没有加载过数据 && 视图已经准备完毕
    28         if (getUserVisibleHint() && !hasFetchData && isViewPrepared) {
    29             hasFetchData = true; //已加载过数据
    30             lazyFetchData();
    31         }
    32     }
    33 
    34     //获得数据操作
    35     abstract void lazyFetchData();
    36 }
  • 相关阅读:
    启智树提高组Day4T3 2的幂拆分
    拉格朗日插值
    #3342. 「NOI2020」制作菜品
    P6776 [NOI2020]超现实树
    P6773 [NOI2020]命运
    P5298 [PKUWC2018]Minimax
    每日总结5.20
    每日总结5.19
    每日总结5.18
    每日总结5.17
  • 原文地址:https://www.cnblogs.com/jeffery336699/p/9289112.html
Copyright © 2020-2023  润新知