ListView 和ScroolView同時使用計算高度時onmeasure報空指針的解決辦法
前言:
雖然Android 的設計者始終認為ListView、GridView+ScroolView組合使用并不是一種比較好的實現方法。但是在我們開發過程中又會經常使用到這樣的需求,特別是在適配小屏幕手機的時候又必須要用這種讓人不接受的設計,下面就來說一下在計算ListView或者GridView的過程中會出現onmeasure空指針的問題。
解決辦法
當我發現listItem.measure(0,0)報空指針異常的時候,第一反應是listItem報空指針,然而debug調試過后發現其不為null,這個時候就比較費解了。
通過查看官方API和一些資料查找后發現了幕后的原因,其主要原因跟Linearlayout的機制有關,原因是因為只有Linearlayout重寫了onmeasure這個方法,而android的其他的4種布局均沒有重寫onmeasure方法,想到這里,這個問題就不解自破了。既然要用到measure計算高度,那么我們就只能用Linearlayout布局了,所有解決這個問題的辦法就是把你對應的適配器(adapter)里的其他布局改成Linearlayout就OK了。
自從跟進了這個問題之后,我最近也在尋找新的方式取代這種ListView 和ScroolView同時使用的情況,研究出來后會第一時間分享給大家。希望這篇博客能幫助大家解決這個問題。
總結
把adapter中的布局改成Linearlayout即可。原因如上。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答