From efafbbf142c81c233c71de636a2d3ce9dc2124f0 Mon Sep 17 00:00:00 2001
From: Linjiajia <319408893@qq.com>
Date: 星期二, 12 九月 2023 19:20:05 +0800
Subject: [PATCH] 修复bug

---
 app/src/main/java/com/application/zhangshi_app_android/ui/function/ImageCarouselFragment.java |   80 ++++++++++++++++++++++++++++++----------
 1 files changed, 60 insertions(+), 20 deletions(-)

diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/ImageCarouselFragment.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ImageCarouselFragment.java
index 8eec0b0..6b834ac 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/ImageCarouselFragment.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/ImageCarouselFragment.java
@@ -10,8 +10,11 @@
 import com.android.app_base.base.viewmodel.BaseViewModel;
 import com.android.app_base.utils.GlideUtil;
 import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.bean.BannerBean;
 import com.application.zhangshi_app_android.databinding.FragmentImageCarouselBinding;
+import com.youth.banner.Banner;
 import com.youth.banner.adapter.BannerImageAdapter;
+import com.youth.banner.config.IndicatorConfig;
 import com.youth.banner.holder.BannerImageHolder;
 import com.youth.banner.indicator.CircleIndicator;
 
@@ -26,8 +29,9 @@
  */
 public class ImageCarouselFragment extends BaseFragment<FragmentImageCarouselBinding, ImageCarouselFragmentViewModel> {
 
-    private List<String> imageList;
-    private BannerImageAdapter<String> adapter;
+    private List<BannerBean> imageList;
+    private List<BannerBean> chooseList = new ArrayList<>();
+    private BannerImageAdapter<BannerBean> adapter;
     private ImageCarouselFragment() {
     }
 
@@ -38,22 +42,38 @@
         return fragment;
     }
 
-    public void setImageList(List<String> imageList) {
+    public void setImageList(List<BannerBean> imageList) {
         this.imageList = imageList;
         Bundle args = new Bundle();
         args.putSerializable("imgList", (Serializable) imageList);
         setArguments(args);
-        if (imageList == null || imageList.size() == 0) {
-            binding.layoutDataNull.setVisibility(View.VISIBLE);
-            binding.banner.setVisibility(View.GONE);
-        } else {
-            binding.layoutDataNull.setVisibility(View.GONE);
-            binding.banner.setVisibility(View.VISIBLE);
-            if (adapter != null) {
-                adapter.setDatas(imageList);
+
+        if (isAdded()){
+            if (imageList == null) {
+                return;
+            }
+            chooseList = new ArrayList<>();
+            //閫夊嚭琚�変腑鐨勫浘鐗�
+            for (BannerBean bean : imageList) {
+                if (bean.getChoose() == 1) {
+                    chooseList.add(bean);
+                }
+            }
+            if (chooseList == null || chooseList.size() == 0) {
+                binding.layoutDataNull.setVisibility(View.VISIBLE);
+                binding.banner.setVisibility(View.GONE);
+            } else {
+                binding.layoutDataNull.setVisibility(View.GONE);
+                binding.banner.setVisibility(View.VISIBLE);
+                if (adapter != null) {
+                    adapter.setDatas(chooseList);
+                }
             }
         }
+    }
 
+    public List<BannerBean> getImageList() {
+        return imageList;
     }
 
     @Override
@@ -69,16 +89,36 @@
     @Override
     protected void initParam() {
         if (getArguments() != null) {
-            imageList = (List<String>) getArguments().getSerializable("imgList");
+            imageList = (List<BannerBean>) getArguments().getSerializable("imgList");
+
         }
     }
 
     @Override
     protected void initView() {
-        adapter = new BannerImageAdapter<String>(imageList) {
+        if (imageList != null) {
+            chooseList = new ArrayList<>();
+            //閫夊嚭琚�変腑鐨勫浘鐗�
+            for (BannerBean bean : imageList) {
+                if (bean.getChoose() == 1) {
+                    chooseList.add(bean);
+                }
+            }
+            if (chooseList == null || chooseList.size() == 0) {
+                binding.layoutDataNull.setVisibility(View.VISIBLE);
+                binding.banner.setVisibility(View.GONE);
+            } else {
+                binding.layoutDataNull.setVisibility(View.GONE);
+                binding.banner.setVisibility(View.VISIBLE);
+                if (adapter != null) {
+                    adapter.setDatas(chooseList);
+                }
+            }
+        }
+        adapter = new BannerImageAdapter<BannerBean>(chooseList) {
             @Override
-            public void onBindView(BannerImageHolder holder, String data, int position, int size) {
-                GlideUtil.loadImage(data, holder.imageView);
+            public void onBindView(BannerImageHolder holder, BannerBean data, int position, int size) {
+                GlideUtil.loadImage(data.getUrl(), holder.imageView);
             }
 
             @Override
@@ -89,24 +129,24 @@
                         ViewGroup.LayoutParams.MATCH_PARENT,
                         ViewGroup.LayoutParams.MATCH_PARENT);
                 imageView.setLayoutParams(params);
-                return new BannerImageHolder(imageView);                    }
+                imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
+                return new BannerImageHolder(imageView);
+            }
         };
         binding.banner.setAdapter(adapter)
                 .addBannerLifecycleObserver(this)//娣诲姞鐢熷懡鍛ㄦ湡瑙傚療鑰�
                 .setIndicator(new CircleIndicator(getSelfActivity()));
 
-        if (imageList == null || imageList.size() == 0) {
+        if (chooseList == null || chooseList.size() == 0) {
             binding.layoutDataNull.setVisibility(View.VISIBLE);
             binding.banner.setVisibility(View.GONE);
         } else {
             binding.layoutDataNull.setVisibility(View.GONE);
             binding.banner.setVisibility(View.VISIBLE);
             if (adapter != null) {
-                adapter.setDatas(imageList);
+                adapter.setDatas(chooseList);
             }
         }
-
-
     }
 
     @Override

--
Gitblit v1.9.1