描述
我在ListView中嵌套了一个GridView,即每个item中都有一个GridView。
GridView中显示一组图片。
代码
ListView的适配器
下面是
ListView的适配器中的getView。
其中的list里面是一组图片的Uri。
我进行判断了一下,如果list里没有Uri,就隐藏GridView;如果有才给GridView设置适配器显示出来。
@Override
public View getView(int arg0, View convertView, ViewGroup arg2) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = inflater.inflate(R.layout.listview_main_item, null);
viewHolder = new ViewHolder();
viewHolder.mImgGridView = (GridView) convertView
.findViewById(R.id.gv_listView_main_gridView);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
ArrayList list = (ArrayList) initData().get(arg0).get("urls");
if (list.size() == 0) {
viewHolder.mImgGridView.setVisibility(View.GONE);
} else {
Log.d("PromotionalMaterialActi", "" + list.size());
viewHolder.mImgGridView.setAdapter(new MyGridViewAdapter(context, list));
}
return convertView;
}
数据
ArrayList> mDatas = new ArrayList>();
//没图片
Map map = new HashMap<>();
ArrayList urls = new ArrayList();
map.put("urls", urls);
mDatas.add(map);
//一张图片
Map map2 = new HashMap<>();
ArrayList urls2 = new ArrayList();
urls2.add("https://img-my.csdn.net/uploads/201410/19/1413698883_5877.jpg");
map2.put("urls", urls2);
mDatas.add(map2);
//三张图片
Map map3 = new HashMap<>();
ArrayList urls3 = new ArrayList();
urls3.add("https://img-my.csdn.net/uploads/201410/19/1413698867_8323.jpg");
urls3.add("https://img-my.csdn.net/uploads/201410/19/1413698883_5877.jpg");
urls3.add("https://img-my.csdn.net/uploads/201410/19/1413698837_5654.jpg");
map3.put("urls", urls3);
mDatas.add(map3);
//六张图片
Map map4 = new HashMap<>();
ArrayList urls4 = new ArrayList();
urls4.add("https://img-my.csdn.net/uploads/201410/19/1413698837_7507.jpg");
urls4.add("https://img-my.csdn.net/uploads/201410/19/1413698865_3560.jpg");
urls4.add("https://img-my.csdn.net/uploads/201410/19/1413698867_8323.jpg");
urls4.add("https://img-my.csdn.net/uploads/201410/19/1413698837_5654.jpg");
urls4.add("https://img-my.csdn.net/uploads/201410/19/1413698883_5877.jpg");
urls4.add("https://img-my.csdn.net/uploads/201410/19/1413698839_2302.jpg");
map4.put("urls", urls4);
mDatas.add(map4);
//六张图片
Map map5 = new HashMap<>();
ArrayList urls5 = new ArrayList();
urls5.add("https://img-my.csdn.net/uploads/201410/19/1413698837_7507.jpg");
urls5.add("https://img-my.csdn.net/uploads/201410/19/1413698865_3560.jpg");
urls5.add("https://img-my.csdn.net/uploads/201410/19/1413698867_8323.jpg");
urls5.add("https://img-my.csdn.net/uploads/201410/19/1413698837_5654.jpg");
urls5.add("https://img-my.csdn.net/uploads/201410/19/1413698883_5877.jpg");
urls5.add("https://img-my.csdn.net/uploads/201410/19/1413698839_2302.jpg");
map.put("urls", urls5);
mDatas.add(map5);
现象描述
第四个item上的GridView图片无法显示
解决方法
把 viewHolder.mImgGridView.setVisibility(View.GONE);
这样第四个item上的GridView图片就会显示出来了。
但是这是为什么?