Space在Android里的应用

来源:互联网 发布:delphi 数据库 编辑:程序博客网 时间:2024/04/28 08:17

Space标签于4.0添加的,直接继承自View,主要用于占位,不进行任何内容的渲染,google官方解释为

Space is a lightweight View subclass that may be used to create gaps between components in general purpose layouts.Space是一个轻量级的View,一般用于分隔组件,布局或者在组件布局之间产生间隔

//Space is a lightweight View subclass that may be used to create gaps between components in general purpose layouts.public final class Space extends View {    public Space(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {        super(context, attrs, defStyleAttr, defStyleRes);        // 默认INVISIBLE        if (getVisibility() == VISIBLE) {            setVisibility(INVISIBLE);        }    }    public Space(Context context, AttributeSet attrs, int defStyleAttr) {        this(context, attrs, defStyleAttr, 0);    }    public Space(Context context, AttributeSet attrs) {        this(context, attrs, 0);    }    public Space(Context context) {        //noinspection NullableProblems        this(context, null);    }    @Override    public void draw(Canvas canvas) {        // Draw nothing.        // 不进行任何内容的渲染    }    // 测量宽高    private static int getDefaultSize2(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:                result = Math.min(size, specSize);                break;            case MeasureSpec.EXACTLY:                result = specSize;                break;        }        return result;    }    // 测量宽高    @Override    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        setMeasuredDimension(                getDefaultSize2(getSuggestedMinimumWidth(), widthMeasureSpec),                getDefaultSize2(getSuggestedMinimumHeight(), heightMeasureSpec));    }}
0 0
原创粉丝点击