关于android api的 getLayoutParams()方法报空指针异常!

如果根布局控件调用此方法:

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

猜你喜欢

转载自blog.csdn.net/qq_20089667/article/details/70051689