关闭

Onmeasure报空指针

标签: gridviewlistviewmeasuremeasure空指针android
16796人阅读 评论(0) 收藏 举报
分类:

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

PS:最新开始准备着手写博客,写的不好的地方望大家见谅。

个人博客
http://jackwaiting.com
https://github.com/Jackwaiting
http://www.zhihu.com/people/jackwaiting

3
1
查看评论

分析java.lang.NullPointerException thrown in RelativeLayout measure()

不难看出,在RelativeLayout被add/attach到父View之前mLayoutParams成员为空,调用measure方法将导致上图标注处代码抛出空指针异常。 解决方案有两种 a) 在measure之前显式设置LayoutParams(代表着对父View的Layout请求,必须是父V...
  • wangfei584521
  • wangfei584521
  • 2014-05-16 18:16
  • 10750

Onmeasure报空指针

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的...
  • zhanggang740
  • zhanggang740
  • 2015-11-12 16:57
  • 16796

动态计算listview的高度listItem.measure(0, 0)报空指针异常解决办法

当我们在使用Listview这类的控件和scrollview嵌套使用的时候会调用一个动态计算listview高度的方法。网上大部分方法基本都如下: public class Utils { public static void setListViewHeightBasedOnChil...
  • u011007829
  • u011007829
  • 2016-10-18 12:02
  • 983

重写listview/gridview 的onMeasure方法,解决与ScrollView的冲突

自定义类继承listview/gridview ****注意item中控件的高要设为固定值 @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { //...
  • Wheidan
  • Wheidan
  • 2016-09-07 21:25
  • 732

android调用measure时报空指针

Android调用 android.view.View.measure(int widthMeasureSpec, int heightMeasureSpec) 这个函数时,如果这个View是
  • solomonxiang
  • solomonxiang
  • 2014-05-21 20:47
  • 1600

android NullPointerException RecyclerView.onMeasure

今天debug别人的代码,碰到这么个错误: 网上查了查,碰到的类似的错误不是很多,再次记录一下。 RecyclerView在onCreate的时候,要确定尺寸,需要执行: RecyclerView.setLayoutManager(new LinearLayoutManager(m...
  • sollian
  • sollian
  • 2015-05-29 20:34
  • 1271

android.widget.RelativeLayout.onMeasure出现的java.lang.NullPointerException错误

在手动计算ListView高度时出现了以下错误:04-23 14:46:05.828: E/AndroidRuntime(3355): FATAL EXCEPTION: main 04-23 14:46:05.828: E/AndroidRuntime(3355): java.lang.NullPo...
  • ljd1991
  • ljd1991
  • 2016-04-25 12:12
  • 1515

NullPointerException - RelativeLayout.onMeasure

ListView 中设置ListView高度调用View. measure(w,h)方法报错 NullPointerException - RelativeLayout.onMeasure
  • qqCJ0
  • qqCJ0
  • 2015-11-05 15:43
  • 330

Android 关于RelativeLayout.onMeasure出现的NullPointerException错误

在popupWindow中使用 popupView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);方法,使用低版本手机测试时(API 18),出现空指针错误,后经查询问题在于popupWindow的布...
  • androidforwell
  • androidforwell
  • 2017-01-18 18:28
  • 306

Android FATAL EXCEPTION:main 空指针异常

Android FATAL EXCEPTION:main 空指针异常,抛出这个异常的时候提示错误的地方在onMeasure方法里的super.onMeasure(widthMeasureSpec, heightMeasureSpec); 还有Fragment里的一个button点击事件,这个butt...
  • u011731233
  • u011731233
  • 2015-02-11 17:16
  • 2367
    个人资料
    • 访问:260496次
    • 积分:2632
    • 等级:
    • 排名:第16364名
    • 原创:34篇
    • 转载:0篇
    • 译文:2篇
    • 评论:67条
    博客专栏
    文章分类
    最新评论