Parcourir la source

优化主页数据加载(用户点击某个模块才进行数据的加载)

zengjiebin il y a 7 ans
Parent
commit
9c86380e97

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java

@@ -883,7 +883,7 @@ public interface ApiService {
      * can_receive_awar
      */
     @GET("app/user/can_receive_award")
-    Observable<BaseMessage> getCanREceiveAwar();
+    Observable<BaseMessage> getCanReceiveAward();
 
     /**
      * 任务审核

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java

@@ -2098,7 +2098,7 @@ public class CommonUtil {
      */
     public void getUserNoDoingTaskMoney(final Action1<BaseMessage> action1) {
 
-        SheepApp.getInstance().getNetComponent().getApiService().getCanREceiveAwar()
+        SheepApp.getInstance().getNetComponent().getApiService().getCanReceiveAward()
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
                 .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {

+ 7 - 3
app/src/main/java/com/sheep/gamegroup/view/activity/ActMain.java

@@ -190,12 +190,15 @@ public class ActMain extends BaseActivity {
     }
 
     private void showFind(boolean isFind) {
-        if (isFind)
+        if (isFind) {
+            fgtFind.setUserVisibleHint(true);
             frame_container.bringToFront();
-        else
+        } else {
+            fgtFind.setUserVisibleHint(false);
             view_pager_container.bringToFront();
+        }
     }
-
+    private Fragment fgtFind;
     public void initFind() {
         FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
         Bundle bundle = new Bundle();
@@ -210,6 +213,7 @@ public class ActMain extends BaseActivity {
             transaction.replace(R.id.frame_container, fragment);
             transaction.commitAllowingStateLoss();
         }
+        fgtFind = fragment;
     }
 
     private long mLastBackTime = 0;//上次按退出按钮的时间

+ 15 - 2
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtAskGetMoney.java

@@ -124,13 +124,26 @@ public class FgtAskGetMoney extends BaseFragment {
         ViewUtil.setDefaultText(tvMoney);
         ViewUtil.setDefaultText(my_invitation_tv);
         ViewUtil.setDefaultText(ask_act_code);
-        showViewPager();
-        initData(true);
 
         initListener();
 
     }
 
+    @Override
+    protected void initViewOnVisibleToUser() {
+        showViewPager();
+    }
+
+    @Override
+    public void initDataOnVisibleToUser() {
+        try {
+            initData(true);
+        } catch (Exception e) {
+            e.printStackTrace();
+            G.showToast(e.getMessage());
+        }
+    }
+
     public void initListener() {
 
         refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {

+ 22 - 5
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtFind.java

@@ -15,6 +15,7 @@ import com.sheep.gamegroup.view.adapter.TitleFragmentListAdapter;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.base.BaseFragment;
+import com.sheep.jiuyan.samllsheep.utils.G;
 
 import org.afinal.simplecache.ApiKey;
 
@@ -44,7 +45,6 @@ public class FgtFind extends BaseFragment {
     public void onViewCreated() {
         activity = getActivity();
         initView();
-        initData();
     }
 
     @BindView(R.id.indicator)
@@ -69,14 +69,31 @@ public class FgtFind extends BaseFragment {
         }
     }
 
-    private int onResumeCount = 0;
+    @Override
+    public void initDataOnVisibleToUser() {
+        if(list.isEmpty()){
+            try {
+                initData();
+            } catch (Exception e) {
+                e.printStackTrace();
+                G.showToast(e.getMessage());
+            }
+        }
+    }
 
+    private boolean isFirstOnResume = true;//第一次onResume
     @Override
     public void onResume() {
         super.onResume();
-        if (list.isEmpty() && onResumeCount != 0)//非第一次时,或者没有数据时调用该接口
-            initNetData();
-        onResumeCount++;
+        if(list.isEmpty() && !isFirstOnResume) {//非第一次时并且没有数据时调用该接口
+            try {
+                initData();
+            } catch (Exception e) {
+                e.printStackTrace();
+                G.showToast(e.getMessage());
+            }
+        }
+        isFirstOnResume = false;
     }
 
     private void initNetData() {

+ 5 - 5
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtFriendExtractPage.java

@@ -83,12 +83,12 @@ public class FgtFriendExtractPage extends BaseFragment {
         }
         CommonUtil.getInstance().updateEmptyView(empty_view, list.isEmpty(), true);
     }
-    private boolean isLoadding = false;
+    private boolean isLoading = false;
     private void initData(){
-        if(list.size() >= per_page || isLoadding){
+        if(list.size() >= per_page || isLoading){
             return;
         }
-        isLoadding = true;
+        isLoading = true;
         list.clear();
         SheepApp.getInstance().getNetComponent().getApiService().getUserFriendList(page, per_page)
                 .subscribeOn(Schedulers.io())
@@ -106,14 +106,14 @@ public class FgtFriendExtractPage extends BaseFragment {
                             }
                             list.addAll(friendList);
                             notifyDataSetChanged();
-                            isLoadding = false;
+                            isLoading = false;
                         }
                     }
 
                     @Override
                     public void onError(BaseMessage baseMessage) {
                         CommonUtil.getInstance().updateEmptyView(empty_view, list.isEmpty(), true);
-                        isLoadding = false;
+                        isLoading = false;
                     }
                 });
     }

+ 27 - 16
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtMainAudit.java

@@ -18,6 +18,7 @@ import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.view.adapter.TitleFragmentListAdapter;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.base.BaseFragment;
+import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
 import org.greenrobot.eventbus.EventBus;
@@ -67,13 +68,6 @@ public class FgtMainAudit extends BaseFragment {
                 .setTitle(mView, "审核中心")
                 .setTitleListen(mView, 0, null);
 
-        mAdapter = new TitleFragmentListAdapter(getChildFragmentManager());
-        mAdapter.add(FgtAudit.newInstance(1), tabNames[0]);
-        mAdapter.add(FgtAudit.newInstance(2), tabNames[1]);
-        mAdapter.add(FgtAudit.newInstance(3), tabNames[2]);
-        pager.setAdapter(mAdapter);
-        new_tab();
-
         my_money_dingxiang_amount_iv.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -83,12 +77,6 @@ public class FgtMainAudit extends BaseFragment {
         });
 
     }
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
-        // TODO: inflate a fragment view
-        View rootView = super.onCreateView(inflater, container, savedInstanceState);
-        return rootView;
-    }
 
     public void initData() {
 
@@ -161,16 +149,39 @@ public class FgtMainAudit extends BaseFragment {
 
     }
 
-
     @Override
-    public void onResume() {
-        super.onResume();
+    protected void initViewOnVisibleToUser() {
+        mAdapter = new TitleFragmentListAdapter(getChildFragmentManager());
+        mAdapter.add(FgtAudit.newInstance(1), tabNames[0]);
+        mAdapter.add(FgtAudit.newInstance(2), tabNames[1]);
+        mAdapter.add(FgtAudit.newInstance(3), tabNames[2]);
+        pager.setAdapter(mAdapter);
+        new_tab();
+    }
 
+    @Override
+    public void initDataOnVisibleToUser() {
         try {
             initData();
         } catch (Exception e) {
             e.printStackTrace();
+            G.showToast(e.getMessage());
+        }
+    }
+
+    private boolean isFirstOnResume = true;//第一次onResume
+    @Override
+    public void onResume() {
+        super.onResume();
+        if(!isFirstOnResume) {
+            try {
+                initData();
+            } catch (Exception e) {
+                e.printStackTrace();
+                G.showToast(e.getMessage());
+            }
         }
+        isFirstOnResume = false;
     }
 
     public void setCurrentItem(int item, boolean smoothScroll) {