速读原著-Android应用开发入门教程(Android的屏幕元素体系)
第 8 章 视图组(ViewGroup)和布局(Layout)的使用在 Android 中视图组是集合若干个控件在一起的元素,ViewGroup 有两种用法,一种是像普通的控件一样使用(如网页视图、旋转按钮、文本切换器、图像切换器、单选按钮组等),另一种是作为布局容器使用(各种布局)。8.1 Android的屏幕元素体系在屏幕中控件的组织上,可以将各个视图(控件)组成一个视图组(ViewGr...
第 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。
根据以上的原则,当屏幕需要包含多个视图时,必须组织在一个视图组中。由于视图组本身也是一个视图,因此视图组还可以包含视图组。在这里一个主要的限制是:在没有视图组的情况下,两个以上的视图(也包括视图组)是不能够并列的。
例如,在布局文件中,类似下面的写法是不可以的。
<?xml version="1.0" encoding="utf-8"?>
<Button android:id="@+id/button"/>
<EditText android:id="@+id/edit"/>
应该组织成以下的格式:
<?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 等)。
更多推荐
所有评论(0)