public class FragmentData extends Fragment { private XListView lv; private MyAdapter adapter; private List<Data.DataBean> list = new ArrayList<>(); @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment, null); lv = (XListView) view.findViewById(R.id.lv); adapter = new MyAdapter(); lv.setAdapter(adapter); return view; } class MyAdapter extends BaseAdapter { final int TYPE0 = 0; final int TYPE1 = 1; final int TYPE3 = 2; ImageLoader imageLoader; DisplayImageOptions options; public MyAdapter() { imageLoader = ImageLoader.getInstance(); ImageLoaderConfiguration config = ImageLoaderConfiguration.createDefault(getActivity()); imageLoader.init(config); options = new DisplayImageOptions.Builder() .showImageOnLoading(R.mipmap.ic_launcher) .build(); } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public int getItemViewType(int size) { switch (size) { case 0: return TYPE0; case 1: return TYPE1; case 3: return TYPE3; default: return TYPE0; } } @Override public int getViewTypeCount() { return 3; } @Override public View getView(int position, View convertView, ViewGroup parent) { Data.DataBean bean = list.get(position); List<Data.DataBean.ImageListBean> listImages = bean.getImage_list(); int size = listImages != null ? bean.getImage_list().size() : 0; int type = getItemViewType(size); ViewHolder holder = null; convertView = null; if (convertView == null) { holder = new ViewHolder(); switch (type) { case TYPE0: convertView = View.inflate(getActivity(), R.layout.item, null); break; case TYPE1: convertView = View.inflate(getActivity(), R.layout.item1, null); holder.image = (ImageView) convertView.findViewById(R.id.image); break; case TYPE3: convertView = View.inflate(getActivity(), R.layout.item2, null); holder.image = (ImageView) convertView.findViewById(R.id.image); holder.image2 = (ImageView) convertView.findViewById(R.id.image2); holder.image3 = (ImageView) convertView.findViewById(R.id.image3); break; } holder.title = (TextView) convertView.findViewById(R.id.title); holder.source = (TextView) convertView.findViewById(R.id.source); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.title.setText(bean.getTitle() + "-" + size); holder.source.setText(bean.getSource()); switch (type) { case TYPE1: imageLoader.displayImage(listImages.get(0).getUrl(), holder.image, options); break; case TYPE3: imageLoader.displayImage(listImages.get(0).getUrl(), holder.image, options); imageLoader.displayImage(listImages.get(1).getUrl(), holder.image2, options); imageLoader.displayImage(listImages.get(2).getUrl(), holder.image3, options); break; } return convertView; } } class ViewHolder { TextView title, source; ImageView image, image2, image3; } }