java.lang.NullPointerException:

作者: 奔跑的佩恩 | 来源:发表于2017-07-26 09:37 被阅读109次

    今天在写一个 popwindow,给它重新设置高度的时候,竟然报错:

    java.lang.NullPointerException: Layout parameters cannot be null at android.view.View.setLayoutParams(View.java:11504)
    

    关键是,在 android 7.0 系统上运行正常,一到 5.5 上运行就崩溃,于是定位代码,首先看是不是view加载失败了,定位代码行

    mLayoutView = LayoutInflater.from(context).inflate(mLayoutId, null);
    

    打印出的 mLayoutView 是有值的。

    接着看它的调用的地方:

       private void setViewSize(final View view){
            view.post(new Runnable(){
                public void run() {//这里获取宽高
                    int maxHeight=ScreenUtil.getHeight(mContext)/4;
                    int height=view.getHeight();
                    ViewGroup.LayoutParams params= view.getLayoutParams();
                    if(height>maxHeight){
                        params.height=maxHeight;
                    }
                    view.setLayoutParams(params);
                }
            });
        }
    

    运行后,显示 view.setLayoutParams(params); 这行报错,报的错就是
    Layout parameters cannot be null at android.view.View.setLayoutParams(View.java:11504)

    很纳闷啊,于是就把 setViewSize()方法中的

     ViewGroup.LayoutParams params= view.getLayoutParams();
    

    改成

    ViewGroup.LayoutParams params= new ViewGroup.LayoutParams(ScreenUtil.getWidth(mContext)/3, ViewGroup.LayoutParams.WRAP_CONTENT);
    

    即 setViewSize()方法成下边这样的:

      private void setViewSize(final View view){
            view.post(new Runnable(){
                public void run() {//这里获取宽高
                    int maxHeight=ScreenUtil.getHeight(mContext)/4;
                    int height=view.getHeight();
                    ViewGroup.LayoutParams params= new ViewGroup.LayoutParams(ScreenUtil.getWidth(mContext)/3, ViewGroup.LayoutParams.WRAP_CONTENT);
                    if(height>maxHeight){
                        params.height=maxHeight;
                    }
                    view.setLayoutParams(params);
                }
            });
        }
    

    然后,在 7.0 手机上运行,完美!接着在5.0手机上运行,完美!你知道我当时的心情么,简直就是一万只草泥马被太阳晒死的场面,我勒个去啊。

    唉,好了,不管怎样,问题算是解决了,希望遇到相同问题的哥们别踩一样的坑,谢谢诶。

    相关文章

      网友评论

        本文标题:java.lang.NullPointerException:

        本文链接:https://www.haomeiwen.com/subject/nxjnkxtx.html