问题场景:
项目中使用ListView配合Glide显示多列,每一列都有图像,但是在效果出来后发现,每次刷新完界面图像会闪烁多次,查看log发现ListView中的getView执行了多次,网上查阅资料,有人说是由于ListView高度设置成wrap_content,如下所示:
android:layout_height="wrap_content"
应该设置为match_parent(改为match_parent确实会使getView只执行一次),但是实际开发中有时候布局不能改变,所以需要另寻出路。
问题解决方案
源码
if(viewHolder.dev_headimage.getTag(R.id.dev_headimage) == null)
{
Glide.with(mContext)
.load(R.drawable.bighead_blue)
.apply(requestOptions2)
.into(viewHolder.dev_headimage);
viewHolder.dev_headimage.setTag(R.id.dev_headimage,"bighead_blue");
}
else if(viewHolder.dev_headimage.getTag(R.id.dev_headimage) != null && !viewHolder.dev_headimage.getTag(R.id.dev_headimage).equals("bighead_blue"))
{
Glide.with(mContext)
.load(R.drawable.bighead_blue)
.apply(requestOp