package com.application.zhangshi_app_android.ui.function;
|
|
import android.os.Bundle;
|
import android.view.View;
|
|
import androidx.viewpager2.widget.ViewPager2;
|
|
import com.android.app_base.base.BaseConfig;
|
import com.android.app_base.base.adapter.BaseVp2FragmentAdapter;
|
import com.android.app_base.base.view.BaseFragment;
|
import com.application.zhangshi_app_android.R;
|
import com.application.zhangshi_app_android.bean.BannerBean;
|
import com.application.zhangshi_app_android.databinding.FragmentVideoCarouselBinding;
|
import com.application.zhangshi_app_android.ui.SimpleViewModel;
|
import com.application.zhangshi_app_android.ui.home.HomeFragment;
|
import com.application.zhangshi_app_android.ui.personal_center.PersonalCenterFragment;
|
import com.youth.banner.indicator.CircleIndicator;
|
|
import java.io.Serializable;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* @author Ljj
|
* @date 2023.09.05. 19:35
|
* @desc 功能主页的视频轮播 Fragment
|
*/
|
public class VideoCarouselFragment extends BaseFragment<FragmentVideoCarouselBinding, SimpleViewModel> {
|
|
private List<BannerBean> videoList;
|
private List<BannerBean> chooseList;
|
|
private BaseVp2FragmentAdapter<VideoFragment> adapter;
|
public VideoCarouselFragment() {
|
}
|
|
public static VideoCarouselFragment newInstance() {
|
VideoCarouselFragment fragment = new VideoCarouselFragment();
|
Bundle args = new Bundle();
|
fragment.setArguments(args);
|
return fragment;
|
}
|
|
|
@Override
|
protected int getLayoutId() {
|
return R.layout.fragment_video_carousel;
|
}
|
|
@Override
|
protected int getVariableId() {
|
return 0;
|
}
|
|
@Override
|
protected void initParam() {
|
if (getArguments() != null) {
|
videoList = (List<BannerBean>) getArguments().getSerializable("videoList");
|
}
|
}
|
|
@Override
|
protected void initView() {
|
adapter = new BaseVp2FragmentAdapter<>(this);
|
binding.viewPager.setAdapter(adapter);
|
binding.viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
|
@Override
|
public void onPageSelected(int position) {
|
super.onPageSelected(position);
|
if (adapter.getFragment(position) != null){
|
adapter.getFragment(position).startPlay();
|
}
|
}
|
});
|
|
}
|
|
@Override
|
protected void initData() {
|
if (videoList == null || videoList.size() == 0){
|
binding.viewPager.setVisibility(View.GONE);
|
binding.layoutDataNull.setVisibility(View.VISIBLE);
|
}else {
|
binding.viewPager.setVisibility(View.VISIBLE);
|
binding.layoutDataNull.setVisibility(View.GONE);
|
|
chooseList = new ArrayList<>();
|
for (BannerBean bannerBean : videoList) {
|
if (bannerBean.getChoose() == 1){
|
chooseList.add(bannerBean);
|
}
|
}
|
if (chooseList.size() == 0){
|
chooseList = videoList;
|
}
|
adapter.removeFragmentAll();
|
for (BannerBean bannerBean : chooseList) {
|
VideoFragment videoFragment = VideoFragment.newInstance(bannerBean.getUrl());
|
videoFragment.setOnPlayListener(new VideoFragment.onPlayListener() {
|
@Override
|
public void onComplete() {
|
if (binding.viewPager.getCurrentItem() == adapter.getItemCount()-1) {
|
binding.viewPager.setCurrentItem(0, false);
|
}
|
binding.viewPager.setCurrentItem(binding.viewPager.getCurrentItem()+1,true);
|
}
|
});
|
adapter.addFragment(videoFragment);
|
}
|
binding.viewPager.setCurrentItem(0);
|
}
|
}
|
|
@Override
|
protected void initLiveDataObserve() {
|
|
}
|
|
public void setVideoList(List<BannerBean> videoList) {
|
//如果内容相同,不刷新
|
boolean isSame = true;
|
if (this.videoList != null && videoList != null && this.videoList.size() == videoList.size()) {
|
for (int i = 0; i < this.videoList.size(); i++) {
|
if (!this.videoList.get(i).equals(videoList.get(i))) {
|
isSame = false;
|
break;
|
}
|
}
|
} else {
|
isSame = false;
|
}
|
if (isSame){
|
return;
|
}
|
this.videoList = videoList;
|
Bundle args = new Bundle();
|
args.putSerializable("videoList", (Serializable) videoList);
|
setArguments(args);
|
|
if (isAdded()){
|
initData();
|
}
|
}
|
|
public List<BannerBean> getVideoList() {
|
return videoList;
|
}
|
}
|