Linjiajia
2023-08-27 1df231fd6aafa221aef3532d069c7e27d4331be7
app/src/main/java/com/application/zhangshi_app_android/ui/function/ImageCarouselFragment.java
@@ -10,6 +10,7 @@
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.adapter.BannerImageAdapter;
import com.youth.banner.holder.BannerImageHolder;
@@ -26,8 +27,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 +40,32 @@
        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) {
        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(imageList);
                adapter.setDatas(chooseList);
            }
        }
    }
    public List<BannerBean> getImageList() {
        return imageList;
    }
    @Override
@@ -69,16 +81,32 @@
    @Override
    protected void initParam() {
        if (getArguments() != null) {
            imageList = (List<String>) getArguments().getSerializable("imgList");
            imageList = (List<BannerBean>) getArguments().getSerializable("imgList");
            if (imageList != null){
                chooseList = new ArrayList<>();
                for (BannerBean bannerBean : imageList) {
                    if (bannerBean.getChoose() == 1){
                        chooseList.add(bannerBean);
                    }
                }
            }
        }
    }
    @Override
    protected void initView() {
        adapter = new BannerImageAdapter<String>(imageList) {
        if (imageList != null) {
            chooseList = new ArrayList<>();
            for (BannerBean bannerBean : imageList) {
                if (bannerBean.getChoose() == 1){
                    chooseList.add(bannerBean);
                }
            }
        }
        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 +117,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