Android随笔:getLayoutParams方法出现空指针

在安卓开发过程中,碰到了这个问题。我动态添加的 ImageButton 控件,需要去用 java 代码来调节他的 layout_width 与 layout_hight 属性。那么大家也都知道用 getLayoutParams 方法来实现,但是这个地方会有一个坑,对于像我这样初学 Android 的小白非常不友好。最后经过各种资料查询和请教大佬才找到原因。

其实这个问题很简单,getLayoutParams 方法是去拿指定控件的参数,所以说如果这个控件还没有添加到这个页面上,参数自然而然就拿不到。具体什么意思呢,我拿代码给大家初略的模拟一下。

LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) command.getLayoutParams();
                        params.width=100;
                        params.height=40;


codeRow.addView(command);

这里可以看见我是用 getLayoutParams 先去拿的参数再调用 addView 方法把控件添加上去,所以就像上面说的这样,控件还没有添加上去就去拿对应控件的参数,会抛出空指针异常:java.lang.NullPointerException: Attempt to write to field 'int android.view.ViewGroup$LayoutParams.width' on a null object reference;正确的写法应该如下:

codeRow.addView(command);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) command.getLayoutParams();
                        params.width=100;
                        params.height=40;

这样就可以解决使用 getLayoutParams 方法抛出空指针异常的问题了!这个问题也是我在安卓开发过程中的一个遇到的一个小插曲,随笔记录一下加深印象,也分享出来希望可以帮到大家!

猜你喜欢

转载自blog.csdn.net/m0_64055755/article/details/127557323