android的Space控件使用方式
来源:互联网 发布:过期未注册域名查询 编辑:程序博客网 时间:2024/04/30 16:27
Space顾名思义是空间的意思,表示该控件占据一定的空间,但是却不显示任何东西。
使用Space
<android.support.v4.widget.Space android:layout_width="match_parent" android:layout_height="60dp" />
源码分析
/* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package android.widget;import android.content.Context;import android.graphics.Canvas;import android.util.AttributeSet;import android.view.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 { /** * {@inheritDoc} */ public Space(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); if (getVisibility() == VISIBLE) { setVisibility(INVISIBLE); } } /** * {@inheritDoc} */ public Space(Context context, AttributeSet attrs, int defStyleAttr) { this(context, attrs, defStyleAttr, 0); } /** * {@inheritDoc} */ public Space(Context context, AttributeSet attrs) { this(context, attrs, 0); } /** * {@inheritDoc} */ public Space(Context context) { //noinspection NullableProblems this(context, null); } /** * Draw nothing. * * @param canvas an unused parameter. */ @Override public void draw(Canvas canvas) { } /** * Compare to: {@link View#getDefaultSize(int, int)} * If mode is AT_MOST, return the child size instead of the parent size * (unless it is too big). */ 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)); }}
该控件直接继承View组件,基本每个View控件都有onDraw方法用来绘制自身,而Space控件onDraw方法进行了一个空的实现。
Space控件在布局中只占位置,而不去绘制渲染。
组件中的间隙用Space控件填充比用其它控件填充可以提高绘制效率。
0 0
- android的Space控件使用方式
- [Android]Space控件的应用场景
- Android 特殊控件Space站位控件
- android控件的对齐方式
- android控件的对齐方式
- Android控件的对齐方式
- android控件的对齐方式
- android控件的对齐方式
- android控件的对齐方式
- Space控件的应用场景
- Space的使用
- android space控件设置背景颜色无效
- android控件的对齐方式详解
- android控件的对齐方式(转)
- android控件的对齐方式(转)
- android控件的对齐方式(转)
- android控件的对齐方式(转)
- android控件的对齐方式(转)
- iso小练习,获取界面的空间,变量字符串int循环判断,get请求数据
- leetcode刷题之旅——215. Kth Largest Element in an Array
- C#加密整理
- Lua 数据结构
- POJ1088 滑雪(动态规划+深搜DFS)
- android的Space控件使用方式
- lavarel框架学习之使用ajax提交表单方法详解
- JSPatch详解
- 滑动改变toolbar透明度
- Creating Custom Views
- redis 主从复制配置
- 最新win10镜像下载
- 使用WinSCP软件在windows和ubuntu中进行文件传输
- ReactiveCocoa详解