Browse Source

YCVideoPlayer

yangchong 7 years ago
parent
commit
e528614045

+ 18 - 0
app/src/main/java/org/yczbj/ycvideoplayer/base/mvp1/BaseLazyFragment.java

@@ -20,8 +20,15 @@ public abstract class BaseLazyFragment extends BaseFragment {
      * 懒加载过
      */
     private boolean isLazyLoaded;
+    /**
+     * Fragment的View加载完毕的标记
+     */
     private boolean isPrepared;
 
+    /**
+     * 第一步,改变isPrepared标记
+     * 当onViewCreated()方法执行时,表明View已经加载完毕,此时改变isPrepared标记为true,并调用lazyLoad()方法
+     */
     @Override
     public void onActivityCreated(@Nullable Bundle savedInstanceState) {
         super.onActivityCreated(savedInstanceState);
@@ -31,6 +38,13 @@ public abstract class BaseLazyFragment extends BaseFragment {
         lazyLoad();
     }
 
+
+    /**
+     * 第二步
+     * 此方法会在onCreateView()之前执行
+     * 当viewPager中fragment改变可见状态时也会调用
+     * 当fragment 从可见到不见,或者从不可见切换到可见,都会调用此方法
+     */
     @Override
     public void setUserVisibleHint(boolean isVisibleToUser) {
         super.setUserVisibleHint(isVisibleToUser);
@@ -39,6 +53,7 @@ public abstract class BaseLazyFragment extends BaseFragment {
 
     /**
      * 调用懒加载
+     * 第三步:在lazyLoad()方法中进行双重标记判断,通过后即可进行数据加载
      */
     private void lazyLoad() {
         if (getUserVisibleHint() && isPrepared && !isLazyLoaded) {
@@ -47,6 +62,9 @@ public abstract class BaseLazyFragment extends BaseFragment {
         }
     }
 
+    /**
+     * 第四步:定义抽象方法onLazyLoad(),具体加载数据的工作,交给子类去完成
+     */
     @UiThread
     public abstract void onLazyLoad();
 

+ 22 - 3
app/src/main/java/org/yczbj/ycvideoplayer/base/mvp2/BaseMVPLazyFragment.java

@@ -13,8 +13,17 @@ import android.os.Bundle;
  */
 public abstract class BaseMVPLazyFragment<T extends IBasePresenter> extends BaseMVPFragment<T> {
 
+    /**
+     * Fragment的View加载完毕的标记
+     */
     protected boolean isViewInitiated;
+    /**
+     * Fragment对用户可见的标记
+     */
     protected boolean isVisibleToUser;
+    /**
+     * 数据是否初始化
+     */
     protected boolean isDataInitiated;
 
     @Override
@@ -22,6 +31,10 @@ public abstract class BaseMVPLazyFragment<T extends IBasePresenter> extends Base
         super.onCreate(savedInstanceState);
     }
 
+    /**
+     * 第一步,改变isViewInitiated标记
+     * 当onViewCreated()方法执行时,表明View已经加载完毕,此时改变isViewInitiated标记为true,并调用lazyLoad()方法
+     */
     @Override
     public void onActivityCreated(Bundle savedInstanceState) {
         super.onActivityCreated(savedInstanceState);
@@ -33,10 +46,10 @@ public abstract class BaseMVPLazyFragment<T extends IBasePresenter> extends Base
     }
 
     /**
+     * 第二步
      * 此方法会在onCreateView()之前执行
      * 当viewPager中fragment改变可见状态时也会调用
      * 当fragment 从可见到不见,或者从不可见切换到可见,都会调用此方法
-     * @param isVisibleToUser
      */
     @Override
     public void setUserVisibleHint(boolean isVisibleToUser) {
@@ -45,9 +58,13 @@ public abstract class BaseMVPLazyFragment<T extends IBasePresenter> extends Base
         prepareFetchData();
     }
 
+    /**
+     * 第四步:定义抽象方法fetchData(),具体加载数据的工作,交给子类去完成
+     */
     public abstract void fetchData();
 
     /**
+     * 第三步:在lazyLoad()方法中进行双重标记判断,通过后即可进行数据加载
      * 第一种方法
      * 调用懒加载,getUserVisibleHint()会返回是否可见状态
      * 这是fragment实现懒加载的关键,只有fragment 可见才会调用onLazyLoad() 加载数据
@@ -59,7 +76,6 @@ public abstract class BaseMVPLazyFragment<T extends IBasePresenter> extends Base
         }
     }
 
-
     /**
      * 第二种方法
      * 调用懒加载
@@ -68,7 +84,10 @@ public abstract class BaseMVPLazyFragment<T extends IBasePresenter> extends Base
         return prepareFetchData(false);
     }
 
-
+    /**
+     * 第三步:在lazyLoad()方法中进行双重标记判断,通过后即可进行数据加载
+     * 用户强制刷新的话,就应该是用户主动进行刷新了,当然也要去取数据了,用户第一嘛
+     */
     public boolean prepareFetchData(boolean forceUpdate) {
         if (isVisibleToUser && isViewInitiated && (!isDataInitiated || forceUpdate)) {
             fetchData();

+ 5 - 3
app/src/main/java/org/yczbj/ycvideoplayer/ui/home/view/fragment/HomeFragment.java

@@ -55,7 +55,9 @@ public class HomeFragment extends BaseFragment {
     private BannerView mBanner;
     private VirtualLayoutManager layoutManager;
     private int lastVisibleItem;
-    //存放各个模块的适配器
+    /**
+     * 存放各个模块的适配器
+     */
     private List<DelegateAdapter.Adapter> mAdapters;
 
     @Override
@@ -135,10 +137,10 @@ public class HomeFragment extends BaseFragment {
                 if(refresh.isRefreshing()){
                     return;
                 }
-                /*if (newState == RecyclerView.SCROLL_STATE_IDLE) {
+                if (newState == RecyclerView.SCROLL_STATE_IDLE) {
                     //加载更多
                     ToastUtil.showToast(activity,"没有更多数据!!!!!");
-                }*/
+                }
             }
 
             @Override