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的时候可能默认跳过。

转载于:https://www.cnblogs.com/Sample1994/p/7771172.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值