Procházet zdrojové kódy

优化游戏中心数据加载

zengjiebin před 7 roky
rodič
revize
dac9b7e037

+ 4 - 7
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPlayGame.java

@@ -200,12 +200,6 @@ public class FgtPlayGame extends BaseFragment {
         banner.stopAutoPlay();
         banner.stopAutoPlay();
     }
     }
 
 
-    @Override
-    public void onResume() {
-        super.onResume();
-        initData();
-    }
-
     private void bindBanner() {
     private void bindBanner() {
         //结束轮播
         //结束轮播
         banner.stopAutoPlay();
         banner.stopAutoPlay();
@@ -238,7 +232,6 @@ public class FgtPlayGame extends BaseFragment {
     }
     }
 
 
     private void initData(){
     private void initData(){
-
         //轮播
         //轮播
         List<SlideshowEty> cacheSlideshowEtyList = DataUtil.getInstance().getCacheList(ApiKey.slideshowGame, SlideshowEty.class);
         List<SlideshowEty> cacheSlideshowEtyList = DataUtil.getInstance().getCacheList(ApiKey.slideshowGame, SlideshowEty.class);
         if (ListUtil.isEmpty(cacheSlideshowEtyList)) {
         if (ListUtil.isEmpty(cacheSlideshowEtyList)) {
@@ -358,11 +351,15 @@ public class FgtPlayGame extends BaseFragment {
         if (!ListUtil.isEmpty(newList)) {
         if (!ListUtil.isEmpty(newList)) {
             list.clear();
             list.clear();
             ListUtil.addAll(list, newList);
             ListUtil.addAll(list, newList);
+            int position = 0;
             for(FindTag findTag:list){
             for(FindTag findTag:list){
                 FgtPlayGameSon item = FgtPlayGameSon.newInstance(findTag.getId());
                 FgtPlayGameSon item = FgtPlayGameSon.newInstance(findTag.getId());
                 item.setViewPager(pager);
                 item.setViewPager(pager);
                 item.setSmartRefreshLayout(refresh);
                 item.setSmartRefreshLayout(refresh);
+                if(position == 0)
+                    item.setFirstPage(true);
                 mAdapter.add(item, findTag.getName());
                 mAdapter.add(item, findTag.getName());
+                position ++;
             }
             }
             pager.setAdapter(mAdapter);
             pager.setAdapter(mAdapter);
             indicator.setupWithViewPager(pager);
             indicator.setupWithViewPager(pager);

+ 24 - 0
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPlayGameSon.java

@@ -13,6 +13,7 @@ import com.sheep.gamegroup.model.entity.GameEntity;
 import com.sheep.gamegroup.model.entity.GameEntityList;
 import com.sheep.gamegroup.model.entity.GameEntityList;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.view.adapter.PlayGameListAdapter;
 import com.sheep.gamegroup.view.adapter.PlayGameListAdapter;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
 
 
@@ -30,6 +31,29 @@ import rx.Observable;
 public class FgtPlayGameSon extends BaseListFragment3<GameEntity> {
 public class FgtPlayGameSon extends BaseListFragment3<GameEntity> {
     private int type;
     private int type;
 
 
+    //第一次就展示在viewpager中的页面
+    public boolean firstPage = false;
+
+    public void setFirstPage(boolean firstPage) {
+        this.firstPage = firstPage;
+    }
+    @Override
+    protected void initDataOnVisibleToUser() {
+        if(activity == null)
+            onViewCreated();
+        if(!firstPage && firstVisibleToUser) {
+            refreshData();
+        }
+    }
+
+    @Override
+    public int refreshDataType() {
+        if(firstPage){
+            return REFRESH_ON_CREATE;
+        }
+        return REFRESH_ON_YOURSELF;
+    }
+
     public static FgtPlayGameSon newInstance(int type){
     public static FgtPlayGameSon newInstance(int type){
         FgtPlayGameSon fgt = new FgtPlayGameSon();
         FgtPlayGameSon fgt = new FgtPlayGameSon();
         Bundle bundle = new Bundle();
         Bundle bundle = new Bundle();

+ 10 - 7
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtWelfareCenter.java

@@ -149,23 +149,26 @@ public class FgtWelfareCenter extends BaseFragment{
         refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
         refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
             @Override
             @Override
             public void onRefresh() {
             public void onRefresh() {
-                refreshHotWelfare = true;
-                refreshDownloadWelfare = true;
-                refreshGiftCenter = true;
-                refreshData();
+                initData();
             }
             }
         });
         });
     }
     }
 
 
     @Override
     @Override
-    public void onResume() {
-        super.onResume();
-        //每次强制刷新
+    protected void initDataOnVisibleToUser() {
+        if(activity == null){
+            onViewCreated();
+        }
+        initData();
+    }
+
+    public void initData() {
         refreshHotWelfare = true;
         refreshHotWelfare = true;
         refreshDownloadWelfare = true;
         refreshDownloadWelfare = true;
         refreshGiftCenter = true;
         refreshGiftCenter = true;
         refreshData();
         refreshData();
     }
     }
+
     private boolean refreshHotWelfare = true;
     private boolean refreshHotWelfare = true;
     private boolean refreshDownloadWelfare = true;
     private boolean refreshDownloadWelfare = true;
     private boolean refreshGiftCenter = true;
     private boolean refreshGiftCenter = true;

+ 1 - 1
app/src/main/java/com/sheep/jiuyan/samllsheep/base/BaseFragment.java

@@ -117,7 +117,7 @@ public abstract class BaseFragment extends Fragment {
     @Override
     @Override
     public void setUserVisibleHint(boolean isVisibleToUser) {
     public void setUserVisibleHint(boolean isVisibleToUser) {
         super.setUserVisibleHint(isVisibleToUser);
         super.setUserVisibleHint(isVisibleToUser);
-        if(isVisibleToUser) {
+        if(isVisibleToUser && mView != null) {
             if(firstVisibleToUser) {
             if(firstVisibleToUser) {
                 initViewOnVisibleToUser();
                 initViewOnVisibleToUser();
             }
             }