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