|
package com.electric.chargingpile.adapter;
import android.app.Activity;
import androidx.viewpager.widget.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import com.electric.chargingpile.data.ChatRecommendBean;
import com.electric.chargingpile.fragment.SvVideoShowView;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class SvVideoPagerAdapter extends PagerAdapter {
InitViewListener initViewListener;
private Activity activity;
private List<ChatRecommendBean> videoInfoList = new ArrayList();
private List<SvVideoShowView> list = new ArrayList();
private Map<Integer, SvVideoShowView> vRoot = new HashMap<>(3);
SvVideoShowView v1, v2, v3;
public SvVideoPagerAdapter(Activity activity,
SvVideoShowView.OnDeleteVideoListener deleteVideoListener) {
this.activity = activity;
v1 = new SvVideoShowView(activity, deleteVideoListener);
v2 = new SvVideoShowView(activity, deleteVideoListener);
v3 = new SvVideoShowView(activity, deleteVideoListener);
list.add(v1);
list.add(v2);
list.add(v3);
}
@Override
public int getCount() {
return videoInfoList.size();
}
public void notifyChanged(List<ChatRecommendBean> videoInfos) {
if (videoInfos != null) {
videoInfoList.clear();
videoInfoList.addAll(videoInfos);
notifyDataSetChanged();
}
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
int temp = position % list.size();
SvVideoShowView videoShowView;
if (vRoot.get(temp) == null) {
videoShowView = list.get(temp);
videoShowView.addView(container);
vRoot.put(temp, videoShowView);
} else {
videoShowView = vRoot.get(temp);
}
videoShowView.setInfo(videoInfoList.get(position));
if (initViewListener != null) {
initViewListener.initFirstViewAfter();
}
return videoShowView.getRootView();
}
public void setInitViewListener(InitViewListener initViewListener) {
this.initViewListener = initViewListener;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
public int getList() {
return list.size();
}
public SvVideoShowView getViewList(int i) {
return list.get(i);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// super.destroyItem(container, position, object);
}
public interface InitViewListener {
void initFirstViewAfter();
}
public void onDestory() {
for (SvVideoShowView svVideoShowView : list) {
svVideoShowView.onDestroy();
}
}
}
|