我制作了一个自定义的 ViewGroup,除了当我将视图拖放到这个 ViewGroup 时,编辑器说它不能将 layout_width 和 layout_height 设置为子项。可能是什么原因造成的?
我只覆盖了两种方法——onLayout 和 onMeasure。我相信我在 onMeasure 中犯了一个错误,因为我还不明白它应该如何测量孩子。
无论如何,这是我的 onMeasure:
@Override
protected void onMeasure(final int widthMeasureSpec, final int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
final int childWidthMeasureSpec = MeasureSpec.makeMeasureSpec(
MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.AT_MOST);
final int childHeightMeasureSpec = MeasureSpec.makeMeasureSpec(
MeasureSpec.getSize(heightMeasureSpec), MeasureSpec.AT_MOST);
int count = getChildCount();
for (int i = 0; i < count; ++i) {
View child = getChildAt(i);
child.measure(childWidthMeasureSpec, childHeightMeasureSpec);
}
setMeasuredDimension(mWidth, mHeight);
}
那么,如何让我的 viewgroup 的孩子获取 layout_with 和 layout_height 参数呢?
PS 我知道我的 ViewGroup 是固定的宽度和高度,但这就是我想要的。