Android
发布时间:2022-04-28 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android中ListView多次刷新重复执行getView的解决方法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
以前倒是没有注意listview的getView会重复执行多次,这次因为布局比较复杂,所以在测试的时候去断点跟踪,发现同一条数据不断的重复执行。觉得
很奇怪,于是上网
搜索了一下。网上的解释基本一致,就是ListView布局时height和width都不是fill_parent,导致不断计算高度,不断刷新。或者说它的
父容器没有设置成fill_parent。
可以布局太复杂的情况下,全部按照fill_parent去调整不现实。
所以想了另一种方案,就是动态固定高度。
在程序运行后,固定ListView的高度,然后再初始化Item信息。
private void fixedListView()
{ listView = (ListView) findViewById(R.id.listview
); ViewGroup.LayoutParams params = listView.getLayoutParams(
); layout = (
horizontalscrollview) findViewById(R.id.layout
); param
s.height = layout.getHeight(
); //需要设置的listview的高度,你可以设置成
一个定值,也可以设置成其他容器的高度,如果是其他容器高度,那么不要在oncreate中执行,需
要做延时处理,否则高度为0
listView.setLayoutParams(params
); }
这样发现ListView刷新的速度大幅加快。同事也
解决了Item
中文本输入EditText中如果存在addTextChangedListener(new TextWatcher()的监听,导致多次执行监听
代码的情况。
大佬总结
以上是大佬教程为你收集整理的android中ListView多次刷新重复执行getView的解决方法全部内容,希望文章能够帮你解决android中ListView多次刷新重复执行getView的解决方法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。