news 2026/6/23 20:40:08

Android 基础入门教程View与ViewGroup的概念

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Android 基础入门教程View与ViewGroup的概念

2.1 View与ViewGroup的概念

分类Android 基础入门教程

本节引言

告别了第一章,迎来第二章——Android中的UI(User Interface)组件的详解, 而本节我们要学习的是所有控件的父类View和ViewGroup类!突发奇想,直接翻译官方文档对 这两个东西的介绍吧,对了,天朝原因,google上不去,Android developer上不去,我们可以 改hosts或者用科学上网,当然也可以像笔者一样使用国内的API镜像,这里分享个吧: http://androiddoc.qiniudn.com/guide/topics/ui/overview.html 这个镜像是5.0的API!


UI Overview


在Android APP中,所有的用户界面元素都是由View和ViewGroup的对象构成的。View是绘制在屏幕上的用户能与之交互的一个对象。而ViewGroup则是一个用于存放其他View(和ViewGroup)对象的布局容器! Android为我们提供了一个View和ViewGroup子类的集合,集合中提供了一些常用的输入控件(比如按钮和文本域)和各种各样的布局模式(比如线性或相对布局)

User Interface Layout


你的APP的用户界面上的每一个组件都是使用View和ViewGroup对象的层次结构来构成的,比如 图 1。每个ViewGroup都是要给看不见的用于组织子View的容器,而它的子View可能是输入控件 或者在UI上绘制了某块区域的小部件。有了层次树,你就可以根据自己的需要,设计简单或者复 杂的布局了(布局越简单性能越好)

图 1.一个UI布局的层次结构的插图

定义你的布局,你可以在代码中实例化View对象并且开始构建你的树,但最容易和最高效的方式来定义你的布局则是使用一个XML文件,用XML来构成布局更加符合人的阅读习惯,而XML类似与HTML 使用XML元素的名称代表一个View。所以< TextView >元素会在你的界面中创建一个TextView控件,而一个< LinearLayout >则会创建一个LinearLayout的容器! 举个例子,一个简单简单的垂直布局上面有一个文本视图和一个按钮,就像下面这样:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="I am a TextView" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="I am a Button" /> </LinearLayout>

当你的App加载上述的布局资源的时候,Android会将布局中的每个节点进行实例化成一个个对象,然后你可以为这些定义一些额外的行为,查询对象的状态,或者修改布局。 完整创建UI布局的引导,请参考XML Layouts

User Interface Components


你无需全部用View和ViewGroup对象来创建你的UI布局。Android给我们提供了一些app控件,标准的UI布局,你只需要定义内容。这些UI组件都有其属性介绍的API文档,比如操作栏,对话框和状态通知栏等。


本节小结

好吧,翻译可能比较拗口,哎,英语盲尽力了,简单归纳下上述内容:

Android里的图形界面都是由View和ViewGroup以及他们的子类构成的:View:所有可视化控件的父类,提供组件描绘和时间处理方法ViewGroup:View类的子类,可以拥有子控件,可以看作是容器 Android UI中的控件都是按照这种层次树的结构堆叠得,而创建UI布局的方式有两种, 自己在Java里写代码或者通过XML定义布局,后者显得更加方便和容易理解! 也是我们最常用的手段!另外我们一般很少直接用View和ViewGroup来写布局,更多的 时候使用它们的子类控件或容器来构建布局!

恩呢,对View和ViewGroup有个大概了解即可,平时我们是不会直接用的,一般是自定义View的时候 才会使用这两个东西!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/22 23:53:19

【ACWing】4982. 进制

题目地址&#xff1a; https://www.acwing.com/problem/content/4985/ 给定两个整数 a,ba, ba,b。请你计算&#xff0c;在区间 [a,b][a,b][a,b] 范围内有多少个整数满足其二进制表示恰好有一个 000。不考虑前导 000。例如&#xff0c;当 a5,,b10a5,, b10a5,,b10 时&#xff0…

作者头像 李华
网站建设 2026/6/22 15:27:02

如何用一张图征服审稿人❓​跟着Nature学作图丨森林图、韦恩图、upset图、生存曲线图、漏斗图、环形图、和弦图、词云图、关联图、瀑布图、条形图、面积图

在全球顶尖期刊发表范式发生结构性变革的今天&#xff0c;数据可视化已从辅助工具升级为科学传播的"黄金媒介"&#xff0c;可谓是「一图胜千言」已成为高水平顶级期刊的硬性门槛——数据显示很多情况的拒稿与图表质量直接相关。Nature统计显示&#xff0c;大部分的评…

作者头像 李华
网站建设 2026/6/23 17:15:42

8 个专科生答辩 PPT 工具,AI 格式优化推荐

8 个专科生答辩 PPT 工具&#xff0c;AI 格式优化推荐 论文答辩前的“多线作战”&#xff1a;专科生的无奈与挑战 对于很多专科生来说&#xff0c;毕业答辩不仅是学业生涯的一个重要节点&#xff0c;更是一场“多线作战”的考验。从选题到开题报告&#xff0c;从文献综述到数…

作者头像 李华
网站建设 2026/6/23 20:40:05

Wan2.2-T2V-A14B在灾难应急演练视频自动生成中的作用

Wan2.2-T2V-A14B在灾难应急演练视频自动生成中的作用 你有没有想过&#xff0c;一场地震应急演练的全过程&#xff0c;不需要真人出演、不用布景搭台&#xff0c;仅靠一段文字就能“自动播放”&#xff1f;&#x1f92f; 这听起来像科幻片的情节&#xff0c;但今天&#xff0c;…

作者头像 李华
网站建设 2026/6/23 5:03:32

如何用Wan2.2-T2V-A14B实现高保真720P视频自动生成?

如何用Wan2.2-T2V-A14B实现高保真720P视频自动生成&#xff1f; 你有没有想过&#xff0c;有一天只需要敲几行字&#xff0c;就能“生成”一段堪比广告大片的高清视频&#xff1f;&#x1f3ac; 不是剪辑&#xff0c;不是调滤镜&#xff0c;而是——从无到有&#xff0c;凭空造…

作者头像 李华
网站建设 2026/6/22 16:03:02

Dify+PDF解密全流程详解,99%的人都忽略的关键步骤

第一章&#xff1a;DifyPDF解密全流程详解&#xff0c;99%的人都忽略的关键步骤在构建基于 Dify 的智能文档处理系统时&#xff0c;PDF 解密是至关重要的前置环节。许多用户在集成 PDF 解析功能时忽略了加密文档的自动识别与解密逻辑&#xff0c;导致后续文本提取失败或流程中断…

作者头像 李华