Android 以编程方式设置视图高度

Android 以编程方式设置视图高度,android,android-layout,android-custom-view,Android,Android Layout,Android Custom View,我使用公共方法定义了自定义视图: public void setHeight(int height) { //this.getLayoutParams().height = height; --- NOT WORKING this.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, height)); // --- WORKING 当我使用注释输出代码时,它不起作用(这意味着调用此

我使用公共方法定义了自定义视图:

public void setHeight(int height) {
    //this.getLayoutParams().height = height; --- NOT WORKING
    this.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, height)); // --- WORKING
当我使用注释输出代码时,它不起作用(这意味着调用此方法时视图高度不会改变),但当我使用第二个短语时,它按预期工作


什么可以解释这种行为?

这很简单-只需查看
setLayoutParams()的代码即可:

看到了吗?它在设置布局参数后调用
requestLayout()


顺便说一句:Android源代码可以在上找到,并且通常非常有用。

这很简单-只需查看
setLayoutParams()的代码即可。

看到了吗?它在设置布局参数后调用
requestLayout()

顺便说一句:Android源代码可以在上找到,并且通常非常有用

 public void setLayoutParams(ViewGroup.LayoutParams params) {
     if (params == null) {
         throw new NullPointerException("Layout parameters cannot be null");
     }
     mLayoutParams = params;
     if (mParent instanceof ViewGroup) {
         ((ViewGroup) mParent).onSetLayoutParams(this, params);
     }
     requestLayout();
 }