Sfoglia il codice sorgente

添加标签游戏列表中加载中与无数据等状态

zengjiebin 7 anni fa
parent
commit
27fce8be5a

+ 16 - 14
app/src/main/java/com/sheep/gamegroup/module/game/adapter/AdpGameCenter4_3List.java

@@ -1,14 +1,13 @@
 package com.sheep.gamegroup.module.game.adapter;
 
 import android.app.Activity;
-import android.content.Context;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.view.View;
 import android.widget.TextView;
 
-import com.kfzs.appstore.utils.adapter.recyclerview.RecyclerViewAdapter;
-import com.kfzs.appstore.utils.adapter.recyclerview.ViewHolder;
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.chad.library.adapter.base.BaseViewHolder;
 import com.sheep.gamegroup.model.entity.GameEntity;
 import com.sheep.gamegroup.model.entity.GameListType;
 import com.sheep.gamegroup.model.entity.ListTypeList;
@@ -25,9 +24,9 @@ import java.util.List;
  * realicing@sina.com
  * 游戏主页上每一屏显示有3.3个元素
  */
-public class AdpGameCenter4_3List extends RecyclerViewAdapter<ListTypeList<GameEntity, GameListType>> {
-    public AdpGameCenter4_3List(Context context, List<ListTypeList<GameEntity, GameListType>> itemList) {
-        super(context, R.layout.item_play_game_list, itemList);
+public class AdpGameCenter4_3List extends BaseQuickAdapter<ListTypeList<GameEntity, GameListType>, BaseViewHolder> {
+    public AdpGameCenter4_3List(List<ListTypeList<GameEntity, GameListType>> itemList) {
+        super(R.layout.item_play_game_list, itemList);
     }
 
     public AdpGameCenter4_3List setShowFirstTop(boolean showFirstTop) {
@@ -37,23 +36,26 @@ public class AdpGameCenter4_3List extends RecyclerViewAdapter<ListTypeList<GameE
 
     private boolean isShowFirstTop = true;
 
+
     @Override
-    public void convert(ViewHolder viewHolder, final ListTypeList<GameEntity, GameListType> itemList, int position) {
-        View item_play_game_list_top = viewHolder.itemView.findViewById(R.id.item_play_game_list_top);
-        TextView item_play_game_list_tv = viewHolder.itemView.findViewById(R.id.item_play_game_list_tv);
-        TextView item_play_game_list_more_tv = viewHolder.itemView.findViewById(R.id.item_play_game_list_more_tv);
+    protected void convert(BaseViewHolder helper, ListTypeList<GameEntity, GameListType> item) {
+        int position = helper.getAdapterPosition();
+
+        View item_play_game_list_top = helper.getView(R.id.item_play_game_list_top);
+        TextView item_play_game_list_tv = helper.getView(R.id.item_play_game_list_tv);
+        TextView item_play_game_list_more_tv = helper.getView(R.id.item_play_game_list_more_tv);
         if (!isShowFirstTop)//不显示第一项的线
             ViewUtil.setVisibility(item_play_game_list_top, position != 0);
-        ViewUtil.setText(item_play_game_list_tv, itemList.getType().getTitle());
+        ViewUtil.setText(item_play_game_list_tv, item.getType().getTitle());
         item_play_game_list_more_tv.setOnClickListener(view -> {
             Activity activity = SheepApp.getInstance().getCurrentActivity();
-            Jump2View.getInstance().goActPlayGameList(activity, itemList.getType());
+            Jump2View.getInstance().goActPlayGameList(activity, item.getType());
         });
-        RecyclerView recyclerView = viewHolder.itemView.findViewById(R.id.item_play_game_list_rv);
+        RecyclerView recyclerView = helper.getView(R.id.item_play_game_list_rv);
         LinearLayoutManager playHotManager = new LinearLayoutManager(SheepApp.getInstance(), LinearLayoutManager.HORIZONTAL, false);
         recyclerView.setHasFixedSize(true);
         recyclerView.setNestedScrollingEnabled(false);
         recyclerView.setLayoutManager(playHotManager);
-        recyclerView.setAdapter(new AdpGameCenter4_3(itemList.getList()));
+        recyclerView.setAdapter(new AdpGameCenter4_3(item.getList()));
     }
 }

+ 9 - 1
app/src/main/java/com/sheep/gamegroup/module/game/fragment/FgtGameGroupMore.java

@@ -16,6 +16,7 @@ import com.sheep.gamegroup.model.entity.GameListType;
 import com.sheep.gamegroup.model.entity.ListTypeList;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.module.game.adapter.AdpGameCenter4_3List;
+import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.ObservableUtil;
 import com.sheep.gamegroup.util.RefreshUtil;
@@ -48,6 +49,7 @@ public class FgtGameGroupMore extends BaseFragment {
 
     //预下载和tag列表的数据
     private List<ListTypeList<GameEntity, GameListType>> gameEntityListx = new ArrayList<>();
+    private AdpGameCenter4_3List adapter;
 
 
     @Override
@@ -55,13 +57,17 @@ public class FgtGameGroupMore extends BaseFragment {
         return R.layout.fgt_game_group_more;
     }
 
+    private View emptyView;
     @Override
     public void onViewCreated() {
+        emptyView = ViewUtil.getEmptyView();
         //预下载与其它列表
         play_game_list_x_rv.setHasFixedSize(true);
         play_game_list_x_rv.setNestedScrollingEnabled(false);
         play_game_list_x_rv.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
-        play_game_list_x_rv.setAdapter(new AdpGameCenter4_3List(getActivity(), gameEntityListx).setShowFirstTop(false));
+        adapter = new AdpGameCenter4_3List(gameEntityListx).setShowFirstTop(false);
+        adapter.bindToRecyclerView(play_game_list_x_rv);
+        adapter.setEmptyView(emptyView);
 
         refresh.setOnRefreshListener(refreshLayout -> refreshData());
         RefreshUtil.newInstance().publicParameter(refresh, getActivity());
@@ -79,6 +85,7 @@ public class FgtGameGroupMore extends BaseFragment {
 
     //预下载下面的tagList
     private void initGameTagList() {
+        CommonUtil.getInstance().resetEmptyView(emptyView);
         gameEntityListx.clear();
         ViewUtil.notifyDataSetChanged(play_game_list_x_rv);
         //其它tag
@@ -150,6 +157,7 @@ public class FgtGameGroupMore extends BaseFragment {
         if(gameTagListCount == ++count) {
             Collections.sort(gameEntityListx, comparator);//排序
             ViewUtil.notifyDataSetChanged(play_game_list_x_rv);
+            CommonUtil.getInstance().updateEmptyView(emptyView, gameEntityListx.isEmpty());
             if (refresh != null) {
                 refresh.finishRefresh();
             }

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/module/game/fragment/FgtPlayGame.java

@@ -109,7 +109,7 @@ public class FgtPlayGame extends BaseFragment {
         play_game_list_x_rv.setHasFixedSize(true);
         play_game_list_x_rv.setNestedScrollingEnabled(false);
         play_game_list_x_rv.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
-        play_game_list_x_rv.setAdapter(new AdpGameCenter4_3List(getActivity(), gameEntityListx).setShowFirstTop(false));
+        new AdpGameCenter4_3List(gameEntityListx).setShowFirstTop(false).bindToRecyclerView(play_game_list_x_rv);
 
         refresh.setOnRefreshListener(refreshLayout -> refreshData());
         RefreshUtil.newInstance().publicParameter(refresh, getActivity());

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

@@ -1783,7 +1783,7 @@ public class CommonUtil {
                 if (BuildConfig.DEBUG) G.showToast("无数据layout中找不到TextView");
                 return;
             }
-            GlideImageLoader.setImage(empty_view_img, R.drawable.gif_sheep_loading);
+            ViewUtil.setImage(empty_view_img, R.drawable.gif_sheep_loading);
             empty_view_msg.setText(R.string.loading);
         }
     }
@@ -1805,11 +1805,11 @@ public class CommonUtil {
 
     //设置无数据显示
     public void updateEmptyView(View empty_view, boolean showEmpty) {
-        updateEmptyView(empty_view, showEmpty, false);
+        updateEmptyView(empty_view, showEmpty, !NetUtil.CAN_CONNECT_SERVICE);
     }
 
     //设置无数据显示
-    public void updateEmptyView(View empty_view, boolean showEmpty, boolean isNetImg) {
+    public void updateEmptyView(View empty_view, boolean showEmpty, boolean isShowNetImg) {
         if (empty_view == null) {
             return;
         }
@@ -1829,7 +1829,7 @@ public class CommonUtil {
                 empty_view_msg.postDelayed(new Runnable() {
                     @Override
                     public void run() {
-                        if (isNetImg) {
+                        if (isShowNetImg) {
                             ViewUtil.setImage(empty_view_img, ViewUtil.getNetImgByName("wushuju"));
                         } else {
                             empty_view_img.setImageResource(R.mipmap.wushuju);
@@ -1838,7 +1838,7 @@ public class CommonUtil {
                     }
                 }, 100);
             } else {
-                if (isNetImg) {
+                if (isShowNetImg) {
                     GlideImageLoader.setImage(empty_view_img, ViewUtil.getNetImgByName("wushuju_net_error"));
                 } else {
                     empty_view_img.setImageResource(R.mipmap.wushuju_net_error);

+ 7 - 0
app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java

@@ -347,6 +347,13 @@ public class ViewUtil {
         }
     }
 
+    public static View getEmptyView() {
+        View view = LayoutInflater.from(SheepApp.getInstance()).inflate(R.layout.empty_view, null);
+        ImageView empty_view_img = view.findViewById(R.id.empty_view_img);
+        setImage(empty_view_img, R.drawable.gif_sheep_loading);
+        return view;
+    }
+
     /**
      * 主页抢任务,更换任务时,获取新的任务
      *

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/ActWebX5.java

@@ -87,7 +87,7 @@ public class ActWebX5 extends BaseActWeb {
     @RequiresApi(api = Build.VERSION_CODES.KITKAT)
     @Override
     public void initView() {
-        GlideImageLoader.setImage(act_web_loading_iv, R.drawable.gif_sheep_loading);
+        ViewUtil.setImage(act_web_loading_iv, R.drawable.gif_sheep_loading);
 
         Intent intent = getIntent();
         webParams = (WebParams) intent.getSerializableExtra(WebParams.class.getSimpleName());