Linjiajia
2023-09-12 efafbbf142c81c233c71de636a2d3ce9dc2124f0
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