View和ViewGroup
View
介绍
View 在 Android 中可以理解为视图。它占据屏幕上的一个矩形区域,负责提供组件绘制和事件处理的方法。如果把 Android 界面比喻成窗户,那么每块玻璃都是一个 view,如图 3.1 所示。View 类是所有的 UI 组件的基类。(View类位于android.view包中;文本框组件TextView是View类的子类,位于android.widget包中)
XML属性
在 Android 中,View 类及其子类的相关属性,既可以在 XML 布局文件中进行设置,也可以通过成员方法在 Java 代码中动态设置。View 类常用的属性及对应的方法如表 3.1 所示。
XML属性 | 方法 | 描述 |
android:background | setBackgroundResource(int) | 设置背景,其属性值为 Drawable 资源或者颜色值 |
android:clickable |
setClickable(boolean)
|
设置是否响应单击事件,其属性值为 boolean 型的true 或者 false |
android:elevation | setElevation(float) | Android API 21 新添加的,用于设置 z 轴深度,其属性值为带单位的有效浮点数 |
android:id | setId(int) | 设置组件的唯一标识符 ID,可以通过findViewById() 方法获取 |
android:longClickable | setLongClickable(boolean) | 设置是否响应长单击事件,其属性值为 boolean 型 的 true 或者 false |
android:minHeight/ Width | setMinimumHeight(int)/ Width | 设置最小高度/ 宽度,其属性值为带单位的整数 |
android:onClick | 设置单击事件触发的方法 | |
android:padding | setPaddingRelative(int,int,int,int) | 设置 4 个边的内边距 |
android:paddingBottom / End / Start / Top | setPaddingRelative(int,int,int,int) | 设置底边 / 右边 / 左边 / 顶边 的内边距 |
android:paddingLeft / Right | setPadding(int,int,int,int) |
设置左边 / 右边的内边距
|
android:visibility | setVisibility(int) | 设置 View 的可见性 |
方法
performClick和callOnclick的区别
//调用该方法时,不用用户手动点击,直接触发View的点击事件
public boolean callOnClick()
ViewGroup
ViewGroup 在 Android 中代表容器。如果还用窗户来比喻的话,ViewGroup 就相当于窗户框,用于控制玻璃的安放,如图 3.2 所示。ViewGroup 类继承自 View 类,它是 View 类的扩展,是用来容纳其他组件的容器,但是由于 ViewGroup 是一个抽象类,所以在实际应用中通常是使用 ViewGroup的子类来作为容器,比如布局管理器。
ViewGroup 控制其子组件的分布时(例如,设置子组件的内边距、宽度和高度等),还经常依赖于 ViewGroup.LayoutParams 和 ViewGroup.MarginLayoutParams 两个内部类,下面分别进行介绍。
1.ViewGroup.LayoutParams
ViewGroup.LayoutParams 类封装了布局的位置、高和宽等信息。它支持 android:layout_height和 android:layout_width 两个 XML 属性,它们的属性值,可以使用精确的数值,也可以使用 FILL_PARENT(表示与父容器相同)、MATCH_PARENT(表示与父容器相同,需要 API 8 或以上版本才支持)或者 WRAP_CONTENT(表示包裹其自身的内容)指定。
2.ViewGroup.MarginLayoutParams
ViewGroup.MarginLayoutParams 类用于控制其子组件的外边距。它支持的常用 XML 属性如表
XML属性 | 描述 |
android:layout_marginBottom / Top / Left / Right | 设置底/ 顶 / 左 / 右外边距 |
android:layout_marginEnd | 该属性为 Android 4.2 新增加的属性,设置右外边距 |
android:layout_marginStart | 该属性为 Android 4.2 新增加的属性,用于设置左外边距 |
在 Android 中,所有的 UI 界面都是由 View 类和 ViewGroup 类及其子类组合而成的。在ViewGroup 类中,除了可以包含普通的 View 类外,还可以再次包含 ViewGroup 类。实际上,这使用了 Composite(组合)设计模式。View 类和 ViewGroup 类的层次结构如图 3.3 所示。
View和ViewGroup相关推荐
- Android精通:View与ViewGroup,LinearLayout线性布局,RelativeLayout相对布局,ListView列表组件...
UI的描述 对于Android应用程序中,所有用户界面元素都是由View和ViewGroup对象构建的.View是绘制在屏幕上能与用户进行交互的一个对象.而对于ViewGroup来说,则是一个用于存放 ...
- 【Android 应用开发】自定义View 和 ViewGroup
一. 自定义View介绍 自定义View时, 继承View基类, 并实现其中的一些方法. (1) ~ (2) 方法与构造相关 (3) ~ (5) 方法与组件大小位置相关 (6) ~ (9) 方法与触摸 ...
- View和ViewGroup常用方法
2019独角兽企业重金招聘Python工程师标准>>> Android的UI界面都是由View和ViewGroup及其派生类组合而成的. 其中,View是所有UI组件的基类,而 Vi ...
- 精通android布局,Android精通:View与ViewGroup,LinearLayout线性布局,RelativeLayout相对布局,ListView列表组件...
标题图 UI的描述 对于Android应用程序中,所有用户界面元素都是由View和ViewGroup对象构建的.View是绘制在屏幕上能与用户进行交互的一个对象.而对于ViewGroup来说,则是一个 ...
- Android(四)——View和ViewGroup
文章目录 1. 用户界面概述 2. View类常用属性 3. ViewGroup类 4. UI组件的层次结构 1. 用户界面概述 在Android APP中,所有的用户界面元素都是由View和View ...
- View和ViewGroup的层次关系
Layout也是一种View Widget - View Layout - ViewGroup
- android应用的界面编程----View与ViewGroup的概念
1 UI OverView Android中所有的UI元素都是通过View与ViewGroup来构建的,View是指屏幕中一块可与用户进行交互的空白,类似于java界面编程中的JPanel.为了界面布 ...
- Android 应用开发(35)---View与ViewGroup的概念
View与ViewGroup的概念 告别了第一章,迎来第二章--Android中的UI(User Interface)组件的详解, 而本节我们要学习的是所有控件的父类View和ViewGroup类!突 ...
- View与ViewGroup
文章目录 1. `View`和`ViewGroup`的关系 2. 坐标获取 3. View的滑动 3.1 案例`layout()` 3.2 案例`offsetLeftAndRight & of ...
- 【Android】Android自定义View和ViewGroup知识点汇总
一.View的绘制流程 onMeasure()->onDraw(). 二.ViewGroup的绘制流程 onMeasure()->onLayout()->onDraw()(一般不重写 ...
最新文章
- 【Docker】Docker的三大核心组件
- python-configparser生成ini配置文件
- 博主的办公室和他的工作台
- centos7装完chrome无法使用yum问题解决
- 矢量图标库如何引入html,Iconfont矢量图标库在网站中的使用方法
- jdk1.8配置(自我速成)
- c语言for循环的省略写法,C语言两种for循环写法分析
- java suppresslint_Java 注解用法详解——@SuppressWarnings
- 中两个查询结果相减_位移差?应力差?利用fish语言实现结果文件间运算。
- Hadoop 信息集成平台,让大数据分析更简单!
- 放心!没人在意你使用的是命令式编程还是声明式编程
- 在android的jni线程C传回调函数给java
- 启动vsftpd失败是什么原因_消防排烟风机不启动的原因是什么呢?
- python可视化界面开发实例-Python可视化界面编程入门
- 【IoT】 产品研发:位深为1的BMP格式图片详解
- 数学建模十大算法01-蒙特卡洛算法(Monte Carlo)
- git commit 提交信息写错,怎么更改?
- 君莫笑系列视频学习(2)
- 如何设计签名 我的名字
- 知识图谱-第三方工具:LibKGE(用于Knowledge Graph Embedding)【包含多种模型:TransE、DistMult、ComplEx、ConvE、Transformer等】