| | |
| | | import android.widget.FrameLayout; |
| | | import android.widget.ImageView; |
| | | |
| | | import com.android.app_base.base.BaseConfig; |
| | | import com.android.app_base.base.view.BaseFragment; |
| | | 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; |
| | | |
| | |
| | | */ |
| | | 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() { |
| | | } |
| | | |
| | |
| | | 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 |
| | |
| | | @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) { |
| | | String url = data.getUrl(); |
| | | if (url.contains("profile/upload")) {//如果是上传到服务器的图片 |
| | | //只取profile/upload以后的部分 |
| | | url = url.substring(url.indexOf("profile/upload")); |
| | | url = BaseConfig.BASE_URL_DOMAIN + "/" + url; |
| | | } |
| | | GlideUtil.loadImage(url, holder.imageView); |
| | | } |
| | | |
| | | @Override |
| | |
| | | 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 |