Android为什么setLayoutParams不设置CustomView大小?

时间:2015-03-19 18:29:04

标签: java android

CustomView(Context c, Boolean animate) {
    super(c);
    this.animate = animate;
    p = new Paint();
    p.setColor(Color.BLACK);
    setLayoutParams(new ActionBar.LayoutParams(100, 100));
    setPivotX(getX() + getWidth() / 2);
    setPivotY(getY() + getHeight() / 2);
    if(animate)
    {
        post(this);
    }
}

在我的构造函数中首先设置布局参数100x100,然后我想将轴心点设置到中心,但getWidth()getHeight()返回0,就好像{{1}没有工作,为什么会这样?因为我必须硬编码我想要的尺寸

1 个答案:

答案 0 :(得分:0)

阅读this question,了解自定义视图的三种不同构造函数的必要性。如果您不是自己直接实例化视图(即您已经在.xml布局中定义了视图),那么您的构造函数很可能无法被调用。