欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android ListView 和ScroolView 出现onmeasure空指针的解决办法

程序员文章站 2023-12-16 17:52:52
listview 和scroolview同时使用计算高度时onmeasure报空指针的解决办法 前言: 虽然android 的设计者始终认为listview、gridv...

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即可。原因如上。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

上一篇:

下一篇: