Просмотр исходного кода

优化发现模块加载数据流程

zengjiebin лет назад: 7
Родитель
Сommit
37a47e74a1
1 измененных файлов с 38 добавлено и 51 удалено
  1. 38 51
      app/src/main/java/com/kfzs/duanduan/fragment/FgtFind.java

+ 38 - 51
app/src/main/java/com/kfzs/duanduan/fragment/FgtFind.java

@@ -62,35 +62,16 @@ public class FgtFind extends BaseCompatFragment {
         layout_navigationBar.setVisibility(View.GONE);
         mAdapter = new GiftpackListAdapter(getFragmentManager(), SheepApp.getInstance());
         mAdapter.add(FgtFindChild.newInstance(0), "全部");
-        pager.setAdapter(mAdapter);
-        indicator.setupWithViewPager(pager);
-        pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
-            @Override
-            public void onPageScrolled(int i, float v, int i1) {
-
-            }
-
-            @Override
-            public void onPageSelected(int i) {
-                position = i;
-                FIND_TAG.onEvent("find_tag_name", ListUtil.hasIndex(list, i - 1) ? list.get(i - 1).getName() : "全部");
-            }
-
-            @Override
-            public void onPageScrollStateChanged(int i) {
-
-            }
-        });
-        CommonUtil.getInstance().reflex(indicator, activity);
-
-        pager.setCurrentItem(0);
     }
 
     private void initData() {
         //尝试获取缓存数据
         List<FindTag> newList = DataUtil.getInstance().getCacheList(ApiKey.articles_tags, FindTag.class);
-        loadList(newList);
-        initNetData();
+        if(ListUtil.isEmpty(newList)){
+            initNetData();
+        } else {
+            loadList(newList);
+        }
     }
 
     private int onResumeCount = 0;
@@ -98,7 +79,7 @@ public class FgtFind extends BaseCompatFragment {
     @Override
     public void onResume() {
         super.onResume();
-        if (list.isEmpty() && onResumeCount != 0)//非第一次时,并且没有数据时调用该接口
+        if (list.isEmpty() && onResumeCount != 0)//非第一次时,或者没有数据时调用该接口
             initNetData();
         onResumeCount++;
     }
@@ -110,15 +91,13 @@ public class FgtFind extends BaseCompatFragment {
                 .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
                     @Override
                     public void onNext(BaseMessage baseMessage) {
-                        if (list.isEmpty()) {//无数据时加载网络获取的新数据,否则不加载新数据
-                            List<FindTag> newList = baseMessage.getDatas(FindTag.class);
+                        List<FindTag> newList = baseMessage.getDatas(FindTag.class);
+                        if(list.isEmpty() && !ListUtil.isEmpty(newList))//有缓存时不会加载,没有缓存时获取到数据会加载
                             loadList(newList);
-                        }
                     }
 
                     @Override
                     public void onError(BaseMessage baseMessage) {
-                        G.showToast(baseMessage);
                     }
                 });
     }
@@ -128,34 +107,42 @@ public class FgtFind extends BaseCompatFragment {
         if (!ListUtil.isEmpty(newList)) {
             list.clear();
             ListUtil.addAll(list, newList);
-            loadMore();
-        }
-    }
+            CommonUtil.getInstance().initUrlConfigByNet("awaken_on", new Action1<String>() {
+                @Override
+                public void call(String url) {
+                    int awaken_on = NumberFormatUtils.parseInteger(url);
 
-    private List<FindTag> list = ListUtil.emptyList();
+                    if (awaken_on == 1) {
+                        mAdapter.add(new FgtRouser(), "看点");
+                    }
+                    for (FindTag findLabel : list) {
+                        mAdapter.add(FgtFindChild.newInstance(findLabel.getId()), findLabel.getName());
+                    }
+                    pager.setAdapter(mAdapter);
+                    indicator.setupWithViewPager(pager);
+                    pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+                        @Override
+                        public void onPageScrolled(int i, float v, int i1) {
 
-    private void loadMore() {
+                        }
 
-        CommonUtil.getInstance().initUrlConfigByNet("awaken_on", new Action1<String>() {
-            @Override
-            public void call(String url) {
-                int awaken_on = NumberFormatUtils.parseInteger(url);
+                        @Override
+                        public void onPageSelected(int i) {
+                            FIND_TAG.onEvent("find_tag_name", ListUtil.hasIndex(list, i - 1) ? list.get(i - 1).getName() : "全部");
+                        }
 
-                if (awaken_on == 1) {
-                    mAdapter.add(new FgtRouser(), "看点");
-                }
-                for (FindTag findLabel : list) {
-                    mAdapter.add(FgtFindChild.newInstance(findLabel.getId()), findLabel.getName());
-                }
-                mAdapter.notifyDataSetChanged();
-                CommonUtil.getInstance().reflex(indicator, activity);
-                pager.setCurrentItem(position);
-                pager.setOffscreenPageLimit(mAdapter.getCount());
+                        @Override
+                        public void onPageScrollStateChanged(int i) {
 
-            }
-        });
+                        }
+                    });
+                    CommonUtil.getInstance().reflex(indicator, activity);
+
+                }
+            });
+        }
     }
 
-    private int position = 0;//默认选中第一个
+    private List<FindTag> list = ListUtil.emptyList();
 
 }