Android ListView 和ScroolView 出現(xiàn)onmeasure空指針的解決辦法
ListView 和ScroolView同時(shí)使用計(jì)算高度時(shí)onmeasure報(bào)空指針的解決辦法
前言:
雖然Android 的設(shè)計(jì)者始終認(rèn)為ListView、GridView+ScroolView組合使用并不是一種比較好的實(shí)現(xiàn)方法。但是在我們開發(fā)過程中又會經(jīng)常使用到這樣的需求,特別是在適配小屏幕手機(jī)的時(shí)候又必須要用這種讓人不接受的設(shè)計(jì),下面就來說一下在計(jì)算ListView或者GridView的過程中會出現(xiàn)onmeasure空指針的問題。
解決辦法
當(dāng)我發(fā)現(xiàn)listItem.measure(0,0)報(bào)空指針異常的時(shí)候,第一反應(yīng)是listItem報(bào)空指針,然而debug調(diào)試過后發(fā)現(xiàn)其不為null,這個(gè)時(shí)候就比較費(fèi)解了。
通過查看官方API和一些資料查找后發(fā)現(xiàn)了幕后的原因,其主要原因跟Linearlayout的機(jī)制有關(guān),原因是因?yàn)橹挥蠰inearlayout重寫了onmeasure這個(gè)方法,而android的其他的4種布局均沒有重寫onmeasure方法,想到這里,這個(gè)問題就不解自破了。既然要用到measure計(jì)算高度,那么我們就只能用Linearlayout布局了,所有解決這個(gè)問題的辦法就是把你對應(yīng)的適配器(adapter)里的其他布局改成Linearlayout就OK了。
自從跟進(jìn)了這個(gè)問題之后,我最近也在尋找新的方式取代這種ListView 和ScroolView同時(shí)使用的情況,研究出來后會第一時(shí)間分享給大家。希望這篇博客能幫助大家解決這個(gè)問題。
總結(jié)
把a(bǔ)dapter中的布局改成Linearlayout即可。原因如上。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Android WebView實(shí)現(xiàn)網(wǎng)頁滾動(dòng)截圖
這篇文章主要為大家詳細(xì)介紹了Android WebView實(shí)現(xiàn)網(wǎng)頁滾動(dòng)截圖,對整個(gè)網(wǎng)頁進(jìn)行截屏,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05
Android實(shí)現(xiàn)手機(jī)監(jiān)控?cái)z像頭
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)手機(jī)監(jiān)控?cái)z像頭,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Intel HAXM為Android 模擬器加速解決模擬器運(yùn)行慢的問題
Android 模擬器一直以運(yùn)行速度慢著稱, 本文介紹使用 Intel HAXM 技術(shù)為 Android 模擬器加速, 使模擬器運(yùn)行度媲美真機(jī), 徹底解決模擬器運(yùn)行慢的問題,感興趣的朋友可以了解下哦2013-01-01
android設(shè)備不識別awk命令 缺少busybox怎么辦
這篇文章主要為大家詳細(xì)介紹了android設(shè)備不識別awk命令,缺少busybox的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
解決android studio 打包發(fā)現(xiàn)generate signed apk 消失不見問題
這篇文章主要介紹了解決android studio 打包發(fā)現(xiàn)generate signed apk 消失不見問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
Android 日志系統(tǒng)Logger源代碼詳細(xì)介紹
本文主要介紹Android 日志系統(tǒng)Logger,這里整理了關(guān)于Android源碼的日志系統(tǒng)資料,有研究Android源碼的朋友可以參考下2016-08-08
Android 圖片處理避免出現(xiàn)oom的方法詳解
本篇文章主要介紹了Android 圖片處理避免出現(xiàn)oom的方法詳解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09
Android編程實(shí)現(xiàn)列表側(cè)滑刪除的方法詳解
這篇文章主要介紹了Android編程實(shí)現(xiàn)列表側(cè)滑刪除的方法,結(jié)合實(shí)例形式詳細(xì)分析了Android列表側(cè)滑刪除功能的原理與具體實(shí)現(xiàn)技巧,注釋中包含詳盡的說明,需要的朋友可以參考下2018-01-01
Android 文件存儲與SharedPreferences存儲方式詳解用法
SharedPreferences是安卓平臺上一個(gè)輕量級的存儲類,用來保存應(yīng)用的一些常用配置,比如Activity狀態(tài),Activity暫停時(shí),將此activity的狀態(tài)保存到SharedPereferences中;當(dāng)Activity重載,系統(tǒng)回調(diào)方法onSaveInstanceState時(shí),再從SharedPreferences中將值取出2021-10-10

