前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >速读原著-Android应用开发入门教程(Android的屏幕元素体系)

速读原著-Android应用开发入门教程(Android的屏幕元素体系)

作者头像
cwl_java
发布2020-02-13 17:03:38
4410
发布2020-02-13 17:03:38
举报
文章被收录于专栏:cwl_Javacwl_Java

第 8 章 视图组(ViewGroup)和布局(Layout)的使用

在 Android 中视图组是集合若干个控件在一起的元素,ViewGroup 有两种用法,一种是像普通的控件一样使用(如网页视图、旋转按钮、文本切换器、图像切换器、单选按钮组等),另一种是作为布局容器使用(各种布局)。

8.1 Android的屏幕元素体系

在屏幕中控件的组织上,可以将各个视图(控件)组成一个视图组(ViewGroup),视图组是一个包含了其他视图的视图。

android.view.ViewGroup 扩展了 android.view.View,它本身也具有 View 的特性,区别仅在于它可以包含其他的控件。

ViewGroup 视图组具有一系列的扩展者:AdapterView、AbsoluteLayout、FrameLayout、LinearLayout、RelativeLayout、AdapterView

Android GUI 程序的屏幕体系结构的组织遵循以下原则:

  • 一个屏幕可以包含一个视图;
  • 视图组本身也是一个视图;
  • 视图组可以包含若干个视图。 Android 视图和视图组的关系如图所示:
在这里插入图片描述
在这里插入图片描述

如图所示,外部最大的框表示整个屏幕,其中包含一个视图组 ViewGroup0,ViewGroup0 包含 3 个子视图,即 View1、ViewGroup1、ViewGroup2ViewGroup1 本身也是视图组,以水平布局的方式包含了 View2 和 .View3;ViewGroup2 本身也是视图组,以垂直的方式包含了 View4ViewGroup3 和 ViewGroup4;ViewGroup4 本身也是视图组,以水平布局的方式包含了 View5 和 View6。

根据以上的原则,当屏幕需要包含多个视图时,必须组织在一个视图组中。由于视图组本身也是一个视图,因此视图组还可以包含视图组。在这里一个主要的限制是:在没有视图组的情况下,两个以上的视图(也包括视图组)是不能够并列的。

例如,在布局文件中,类似下面的写法是不可以的。

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?> 
 <Button android:id="@+id/button"/> 
 <EditText android:id="@+id/edit"/>

应该组织成以下的格式:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?> 
 <ViewGroup> 
 <Button android:id="@+id/button"/> 
 <EditText android:id="@+id/edit"/> 
 </ViewGroup

其中的 ViewGroup 可以是 ViewGroup 类,或者是它的扩展者,可以将 ViewGroup 及其扩展者统称为ViewGroup。在 Android 中,有一些预置的 ViewGroup 可以直接像 View 一样使用(如 WebView),还有一些ViewGroup 本身没有功能,只是提供屏幕上的各种布局(如 AbsoluteLayout、FrameLayout 等)。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-01-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第 8 章 视图组(ViewGroup)和布局(Layout)的使用
    • 8.1 Android的屏幕元素体系
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档