美文网首页
自定义View,继承自View,wrap_content不生效问

自定义View,继承自View,wrap_content不生效问

作者: couriravant | 来源:发表于2020-02-16 17:24 被阅读0次

主要是由于View本身的onMeasure方法实现的问题,看View的onMeasure方法:
、、、
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
setMeasuredDimension(getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec),
getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec));
}
、、、
看getDefaultSize:
、、、
public static int getDefaultSize(int size, int measureSpec) {
int result = size;
int specMode = MeasureSpec.getMode(measureSpec);
int specSize = MeasureSpec.getSize(measureSpec);

    switch (specMode) {
    case MeasureSpec.UNSPECIFIED:
        result = size;
        break;
    case MeasureSpec.AT_MOST:
    case MeasureSpec.EXACTLY:
        result = specSize;
        break;
    }
    return result;
}

、、、
AT_MOST、EXACTLY都用了specSize,在AT_MOST时相当于EXACTLY的效果了,造成warp_content失效。

相关文章

网友评论

      本文标题:自定义View,继承自View,wrap_content不生效问

      本文链接:https://www.haomeiwen.com/subject/ndhmfhtx.html