android的listview多次调用getview原因和解决方法
2011-09-21 09:48:44| 分类: 默认分类 | 标签:android apple 云 win8 腾讯qq |举报 |字号 订阅
此问题在于,ListView没有取到实际的高度,无法确定取多少View来填充ListView,
也就是运行getView()的具体运行次数。
解决方法: 给ListView设置固定高度或者fill_parent。 (我采取的办法就是给ListView 的父类设置足够大 例如 500dp 1000dp等)
不过这个方法也有局限性,也就是当你自定义listview并嵌入到ScrollView控件里面的时候,这个解决方法也就失效了。悲剧的是,我成为了悲剧的一员。希望能找到解决的方法。。
最新进展:通过定义一个boolean类型的数组来判断是不是第一次进来,不是第一次就不执行里面的操作,算是成功解决。哈哈
最新进展:(2011.11.12跟进)
通过这段时间的不断改进和细节比较,最终放弃listview并嵌入到ScrollView这种方法,毕竟google也不提倡这种做法。
还是用最先的设置固定高度方法,可以很好的解决。
如果有分页读取,需要在listview中添加一个加载条的话,可以考虑listview.addFooterView(loadingBar);通过inflate添加一个布局到listview底部。这个方法很不错,最主要的是高效率。
以前的方法纯粹是用空间换时间,导致用户体验不好。