ListView加载混乱以及getView重复调用问题

来源:互联网 发布:asic和单片机 编辑:程序博客网 时间:2024/05/16 14:27

1:因为复用item造成数据混乱

解决方法:http://www.trinea.cn/android/android-listview-display-error-image-when-scroll/


主要方式是:设置holder的tag,记得是在设置完convertView之后设置holder的tag


2:getView被多次调用

https://www.liaohuqiu.net/cn/posts/first-view-will-be-created-multi-times-in-list-view/


原因:文中的分析是因为Item中控件赋值等操作,导致item重绘,引起listView的onMeasure方法来重新确定自己的大小,就要不断地调用到getView

有了原因:那么我们只要精确的指定listView的大小就可以避免重复调用

onMeasure操作的时候,宽高操作是有MeasureSpec来决定的。

参考:http://www.cnblogs.com/yydcdut/p/4170629.html

MeasureSpec有三种模式:

EXACTLY:精确模式,我们指定ListView的宽高的dp,或者设置宽高layout为充满

AT_MOST:包含模式,那么设置宽高为wrap_content

UNSPECIFIDE:未指定尺寸,可以超出范围,一般不使用

所以如果要避免重复调用,我们就要指定listView的精确宽高


0 0