android listview notifydatasetchanged 不刷新的解决办法


1.getCount()返回的size是0

2.布局问题

3.线程问题

 

 

我遇到的是2,由于将listview的高度设为0dp,而将其重量设为1试图独占剩余的空间。

但是由于不小心将一个布局中的控件高度写成了match_parent,导致了调用listview的notifydatasetchanged的时候,不走getview这个流程。

看了下源码,其实是由于listview的高度设置导致的,虽然可见,但是由于父类空间的的确确被完全占用,因此走getview的时候默认判了false,导致不刷新。

 

收集了一下,还有别的两种愿意,第一种自然不谈,没有数据本就不应该刷新。

但是第三种线程问题,主要是由于子线程无法进行view的刷新,比如说将ui更新操作全部放在子线程里面,使用handler或者runonuithread进行刷新,notifydatasetchanged的时候可能默认跳过。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM