1.适配器里设置
public class ViewPagerAdapter extends PagerAdapter {
private List<MeiNvBean> list;
private LinkedList<View> views = new LinkedList<>(); //使用LinkedList
public ViewPagerAdapter(List<MeiNvBean> list) {
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@NonNull
@Override //类同listview条目复用
public Object instantiateItem(@NonNull ViewGroup container, int position) {
PagerViewHolder holder = null;
View view = null;
if (list.size() != 0) {
if (views.size() == 0) {
view = LayoutInflater.from(container.getContext()).inflate(R.layout.pager_item,null);
holder = new PagerViewHolder();
holder.desc = view.findViewById(R.id.desc);
holder.imageView = view.findViewById(R.id.imageView);
view.setTag(holder);
} else {
view = views.removeFirst();
holder = (PagerViewHolder) view.getTag();
}
System.out.println(list.get(position).getUrl());
Glide.with(container.getContext()).load(list.get(position).getUrl()).into(holder.imageView);
holder.desc.setText(list.get(position).getDesc());
container.addView(view);
}
return view;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
View view = (View) object;
container.removeView(view);
views.add(view);
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
return view == o;
}
static class PagerViewHolder {
ImageView imageView;
TextView desc;
}
}