问题描述
这两天一直对RecyclerView出现的文本和图片没法展示的问题苦恼着,弄的整天郁闷。展示一下出现的问题:
也就是说,图片文件虽然被加载了,但是不能显示,文字也是如此。如果有相同问题朋友可以参考一下
问题分析
出现这个问题后,我百思不得其解,也尝试过网上的一些解决方案,比如说:
用RelativeLayout包裹recyclerview 、
getItemCount方法中的返回值写为list.size()
以及
RecyclerView.setLayoutManager(new LinearLayoutManager(this));
但是并没用,毕竟问题有些出入。今早一起来,便想着这个问题,突然灵光一现,发现了问题的所在:
在Adapter类的onBindViewHolder方法中,出现了低级错误:
PopulationBean populationBean = new PopulationBean();
看上去并没什么不妥,其实这才是问题所在。这里对Bean对象的赋值不应该用new 的方法。因为这样做的后果是每次使用的bean对象都是重新创建出来的,即没有正确的对list中的item进行赋值。
解决方法
在Adapter类的onBindViewHolder方法里使用list.get(position)来给bean对象进行赋值,例如:
PopulationBean populationBean = populationBeanList.get(position);
效果图:
如此,就能显示出来了。总算是解决了。