【Android】View 与 ViewGroup

news2024/10/6 12:35:28

View 是 Android 所有控件的基类,我们平常所用的 TextView 和 ImageView 都是继承自 View 的,源码如下:

public class TextView extends View implements ViewTreeObserver.OnPreDrawListener {
    ...
}

public class ImageView extends View {
    ...
}

接着看看我们平常用的布局控件 RelativeLayout,它继承自 ViewGroup,源码如下所示:

public class RelativeLayout extends ViewGroup {
    ...
}

ViewGroup 又是什么呢?ViewGroup 可以理解为 View 的组合,它可以包含很多 View 以及 ViewGroup,而它包含的 ViewGroup 又可以包含 View 和 ViewGroup,依此类推,形成一个 View 树,如图1所示:
View 树

图1 View 树

需要注意的是 ViewGroup 也继承自 View,源码如下所示:

public abstract class ViewGroup extends View implements ViewParent, ViewManager {
    ...
}

ViewGroup 作为 View 或者 ViewGroup 这些组件的容器,派生了多种布局控件子类,比如 LinearLayout、RelativeLayout 等。一般来说,开发 Android 应用的 UI 界面都不会直接使用 View 和 ViewGroup,而是使用这两大基类的派生类。看图2我们就会有一个直观的了解:
View 的部分继承关系

图2 View 的部分继承关系

图2列举了 View 的部分继承关系,在这张图上我们看到 ViewGroup、TextView 等控件继承自 View,LinearLayout、RelativeLayout 等控件继承自 ViewGroup,TableLayout、RadioGroup 等控件继承自 LinearLayout,EditText、Button 等控件继承自 TextView,等等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1469355.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

升级加薪聊绩效过程中,如果我觉得自己受到了老板“不公正”的对待,该如何“怼”回去?...

老板与员工谈绩效 今天分享的主题是「职场的向上管理」 什么是向上管理? 向上管理是一种有自主意识的方法 通过与你的老板在目标上达成共识,并最终用这个目标满足你、你的老板、你的组织的最大利益 向上管理与你的老板无关,老板都没得选的&am…

Java JDK 下载和配置

Java JDK 下载 下载网址:https://www.oracle.com/java/technologies/javase/jdk21-archive-downloads.html jdk文件夹的目录介绍 bin: 主要存放的是Java的编译器、解析器等工具。 jre:Java runtime environment, Java 运行时环境。 jre/bin:Java平台…

RuntimeError: CUDNN_STATUS_EXECUTION_FAILED

问题描述: 运行代码时候报错: 原因:pytorch与cuda版本不对,需要重新安装。不过我在复现代码的时候一般是要求特定的环境,不然会有其他错误,所以选择其他解决办法。 解决方案: 在train.py开头…

【图论】【堆优化的单源路径】LCP 20. 快速公交

作者推荐 【广度优先搜索】【网格】【割点】【 推荐】1263. 推箱子 LCP 20. 快速公交 小扣打算去秋日市集,由于游客较多,小扣的移动速度受到了人流影响: 小扣从 x 号站点移动至 x 1 号站点需要花费的时间为 inc; 小扣从 x 号站…

MySQL--索引结构

索引-索引结构 1. 概述2. 二叉树3. B-Tree4. BTree5. Hash 1. 概述 MySQL的索引是在存储引擎层实现的,不同的存储引擎有不同的索引结构,主要包含以下几种: 上述是MySQL中所支持的所有的索引结构,下面展示不同的存储引擎对于索引…

如何连接ACL认证的Redis

点击上方蓝字关注我 应用程序连接开启了ACL认证的Redis时与原先的方式有差别,本文介绍几种连接开启ACL认证的Redis的Redis的方法。 对于RedisACL认证相关内容,可以参考历史文章: Redis权限管理体系(一):客户端名及用户…

计算机网络-网络互联

文章目录 网络互联网络互联方法LAN-LAN:网桥及其互连原理使用网桥实现LAN-LAN使用交换机扩展局域网使用路由器连接局域网 LAN-WANWAN-WAN路由选择算法非自适应路由选择算法自适应路由选择算法广播路由选择算法:分层路由选择算法 网络互联 网络互联是指利…

设备树详解

设备树(Device Tree)基本概念及作用 设备树(Device Tree)基本概念 在内核源码中,存在大量对板级细节信息描述的代码。这些代码充斥在/arch/arm/plat-xxx和/arch/arm/mach-xxx目录,对内核而言这些platform设备、resource、i2c_board_info、spi_board_info以及各种硬件的…

神经网络系列---分类度量

文章目录 分类度量混淆矩阵(Confusion Matrix):二分类问题二分类代码多分类问题多分类宏平均法:多分类代码多分类微平均法: 准确率(Accuracy):精确率(Precision)&#xf…

EasyRecovery2024免费不要钱的电脑数据恢复软件下载

EasyRecovery 2024易恢复软件在数据恢复方面的表现评价,EasyRecovery 2024易恢复软件在数据恢复领域享有良好的声誉,它提供了全面的功能,易于使用的界面以及可靠的数据恢复效果。以下是对该软件在数据恢复方面的详细评价: EasyRec…

03|JOIN关联查询优化

1. mysql关联算法 1.1 嵌套循环连接 Nested-Loop Join(NLJ) 算法 先去t2表(驱动表)拿一行数据,然后去t1表(被驱动表)做关联, 关联之后把结果集存下来最后返回. 1.2 基于块的嵌套循环连接 Block Nested-Loop Join(BNL)算法 1.把 t…

森歌深化体育营销战略,揭晓2024奥运新代言人,携手共创影响力奇迹

2024年,奥运龙年的春节将将过去,各大高端品牌便纷纷开始激烈博弈。森歌有备而来!布局早,积累深,以其深入骨髓的体育情怀和独具匠心的品牌策略,成为厨电行业的佼佼者。2月27日-2月28日,森歌将在杭…

电子器件系列64:稳压二极管ZM4728A

C143062_稳压二极管_ZM4728A-GS08_规格书_WJ481159 稳压管可以用于信号线路的旁路,用于过滤高频信号? 这种电路叫做限幅电路 从集成电路Al的①脚输出信号通过Rl加到集成电路A2的①脚。当集成电路Al的①脚输出信号幅度没有超过VD1稳压值时,这…

HDL FPGA 学习 - Avlon 总线,从端口传输、主端口传输,单周期、可变周期传输

目录 1.1 Avlon 总线 定制 外设 IP 核的框架 从端口传输 从端口信号类型 从端口传输模式列举 基本单周期读写传输 固定等待周期的读写传输 可变等待周期的读写传输(推荐) 具有建立时间和保持时间读写传输 主端口传输 主端口信号类型 主端口传…

Day04-流程控制语句_循环结构(while,do...while,关键字continue,关键字break,循环嵌套)

文章目录 Day04- 循环结构学习目标1 while循环2 do...while循环4 循环语句的区别5 关键字continue6 关键字break7 循环嵌套案例1:打印5行直角三角形案例2:break结束当层循环 Day04- 循环结构 学习目标 理解for语句的格式和执行流程 随机数公式 理解…

MES管理系统生产过程控制的核心要素

MES(制造执行系统)是为优化制造业生产过程和管理而设计的软件系统,其核心要素包括: 工单管理:工单管理是MES系统最基本的功能之一,它可以跟踪和管理各种类型的工单,如生产工单、维修工单和质量…

IO进程线程复习:进程线程、通信

1.进程的创建 #include<myhead.h>int main(int argc, const char *argv[]) {printf("hello world\n");//父进程执行的内容int num520;//在父进程中定义的变量pid_t pidfork();//创建子进程if(pid>0){while(1){printf("我是父进程&#xff0c;num%d\n&…

【ubuntu】永久修改主机名

文章目录 1. 问题描述2. 解决方案 1. 问题描述 主机名过长&#xff08;后面的部分&#xff09; 2. 解决方案 查看主机名详情 hostnamectl修改指定主机名 hostnamectl set-hostname ubuntu2204 --static登出重进即可

【Java程序设计】【C00279】基于Springboot的智慧外贸平台(有论文)

基于Springboot的智慧外贸平台&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的智慧外贸平台 本系统分为系统功能模块、管理员功能模块、买家功能模块以及商家功能模块。 系统功能模块&#xff1a;在平台首页可以…

五篇保姆级分类诊断教程,数据特征提取+优化算法+机器学习

今天水一期&#xff0c;总结一下以前写过的几篇保姆级故障诊断。学会这几篇&#xff0c;机器学习的故障诊断你就基本合格了&#xff01; 本期内容&#xff1a;基于SABO-VMD-CNN-SVM的分类诊断。 依旧是采用经典的西储大学轴承数据。基本流程如下&#xff1a; 首先是以最小包络熵…