Android中的onLayout()行为

时间:2016-02-08 10:05:38

标签: java android layout xamarin

我的自定义视图会动态添加按钮控件。在我的onLayout方法中,我有一个类似于下面的逻辑。

@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
    super.onLayout(changed, left, top, right, bottom);
    for (int i = 0; i < this.getChildCount(); i++) {
        this.getChildAt(i).layout(left, top, right / 2, top + 200);
    }
}

这会使我的按钮控制而不是收缩。将layout()更改视图的宽度,否则它将仅裁剪它。

我是否需要为onMeasure()中的所有孩子调用措施。

提前致谢。

1 个答案:

答案 0 :(得分:0)

是的,一般来说,测量会告诉视图有多大,而布局会告诉视图在哪里。如果您在没有度量的情况下覆盖布局,则视图将在错误的位置绘制为完整大小,并且将被画布裁剪。