栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

Android ListView与getView调用卡顿问题解决办法

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android ListView与getView调用卡顿问题解决办法

Android ListView与getView调用卡顿问题解决办法

解决办法1,设置ListView高度为固定值或者match_parent/ifll_parent

@Override 
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
Log.d("onMeasure", "onMeasure"); 
isonMeasure = true; 
super.onMeasure(widthMeasureSpec, heightMeasureSpec); 
} 
 
@Override 
protected void onLayout(boolean changed, int l, int t, int r, int b) { 
Log.d("onLayout", "onLayout"); 
isonMeasure = false; 
super.onLayout(changed, l, t, r, b); 
} 

究其原因,无非是listview要动态计算有多少个view显示在里面,所以需要多次onMeasure,最后才onLayout,而onMeasure可能需要执行多次

这不就行了,我们在adapt里面的getview中,判断是否在onmeasure里,如果在,那么仅仅mInflater.inflate(R.layout.XXX),然后立刻返回这个convertView

如果不在onmeasure里,那么再去真正的onlayout

结合这种方法,成功解决了卡顿问题..

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/157949.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号