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