如果根布局控件调用此方法:
private void setHeight(RelativeLayout rl_root) { ViewGroup.LayoutParams params = rl_root.getLayoutParams(); params.height = UtilMethod.dip2pxForAppself(mContext, 64); rl_root.setLayoutParams(params); }
会报错:空指针(NopointerException)
其实api解释已经很清楚了:
/** * Get the LayoutParams associated with this view. All views should have * layout parameters. These supply parameters to the <i>parent</i> of this * view specifying how it should be arranged. There are many subclasses of * ViewGroup.LayoutParams, and these correspond to the different subclasses * of ViewGroup that are responsible for arranging their children. * * This method may return null if this View is not attached to a parent * ViewGroup or {@link #setLayoutParams(android.view.ViewGroup.LayoutParams)} * was not invoked successfully. When a View is attached to a parent * ViewGroup, this method must not return null. * * @return The LayoutParams associated with this view, or null if no * parameters have been set yet */ @ViewDebug.ExportedProperty(deepExport = true, prefix = "layout_") public ViewGroup.LayoutParams getLayoutParams() { return mLayoutParams; }所以:要想用此方法,不能把使用对象设置成根 布局!
This method may return null if this View is not attached to a parent * ViewGroup