美文网首页
自定义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