package com.application.zhangshi_app_android.ui.function;
|
|
import android.os.Bundle;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.widget.FrameLayout;
|
import android.widget.ImageView;
|
|
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.databinding.FragmentImageCarouselBinding;
|
import com.youth.banner.adapter.BannerImageAdapter;
|
import com.youth.banner.holder.BannerImageHolder;
|
import com.youth.banner.indicator.CircleIndicator;
|
|
import java.io.Serializable;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* @author Ljj
|
* @date 2023.07.16. 23:23
|
* @desc 功能主页的图片轮播 Fragment
|
*/
|
public class ImageCarouselFragment extends BaseFragment<FragmentImageCarouselBinding, ImageCarouselFragmentViewModel> {
|
|
private List<String> imageList;
|
private BannerImageAdapter<String> adapter;
|
private ImageCarouselFragment() {
|
}
|
|
public static ImageCarouselFragment newInstance() {
|
ImageCarouselFragment fragment = new ImageCarouselFragment();
|
Bundle args = new Bundle();
|
fragment.setArguments(args);
|
return fragment;
|
}
|
|
public void setImageList(List<String> 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);
|
}
|
}
|
|
}
|
|
@Override
|
protected int getLayoutId() {
|
return R.layout.fragment_image_carousel;
|
}
|
|
@Override
|
protected int getVariableId() {
|
return 0;
|
}
|
|
@Override
|
protected void initParam() {
|
if (getArguments() != null) {
|
imageList = (List<String>) getArguments().getSerializable("imgList");
|
}
|
}
|
|
@Override
|
protected void initView() {
|
adapter = new BannerImageAdapter<String>(imageList) {
|
@Override
|
public void onBindView(BannerImageHolder holder, String data, int position, int size) {
|
GlideUtil.loadImage(data, holder.imageView);
|
}
|
|
@Override
|
public BannerImageHolder onCreateHolder(ViewGroup parent, int viewType) {
|
ImageView imageView = new ImageView(parent.getContext());
|
//注意,必须设置为match_parent,这个是viewpager2强制要求的
|
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(
|
ViewGroup.LayoutParams.MATCH_PARENT,
|
ViewGroup.LayoutParams.MATCH_PARENT);
|
imageView.setLayoutParams(params);
|
return new BannerImageHolder(imageView); }
|
};
|
binding.banner.setAdapter(adapter)
|
.addBannerLifecycleObserver(this)//添加生命周期观察者
|
.setIndicator(new CircleIndicator(getSelfActivity()));
|
|
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);
|
}
|
}
|
|
|
}
|
|
@Override
|
protected void initData() {
|
}
|
|
@Override
|
protected void initLiveDataObserve() {
|
|
}
|
}
|