Android开发实战:从学习到产品
上QQ阅读APP看书,第一时间看更新

3.1 布局管理器概述

布局管理器可以根据屏幕大小管理容器内的控件,自动适配组件在手机屏幕中的位置,所以在Android界面开发中布局管理器的作用非常重要。从图3-1中可以看出,布局管理器都是以ViewGroup为基类派生出来的,共有6种。

图3-1 android.view.View包概览

• LinearLayout:线性布局管理器,布局内的控件不换行或者换列,组件依次排列,超出容器的控件则不会被显示。

• TableLayout:表格布局管理器,继承自LinearLayout线性布局。表格布局管理器用行、列方式来管理容器内的控件,表格布局不需要制定多少行列,布局内每添加一行TableRow表示添加一行,然后在TableRow添加子控件,容器的列数由包含列数最多的行决定。

• RelativeLayout:相对布局管理器,是Android studio中默认的布局管理器。容器内的控件布局总是相对于父容器或兄弟组件的位置而定。

• FrameLayout:帧布局管理器,为容器内的控件创建一块空白区域(帧),一帧一个控件,后面添加的控件覆盖在前面的控件上面。类似于Java AWT中的CardLayout布局。

• AbsoluteLayout:绝对布局管理器,控件的位置大小需要开发人员通过指定X、Y坐标来确定。

• GridLayout:网格布局管理器,是Android 4.0以后才增加的布局管理器,将容器划分为行×列的网格,将每个控件置于网格中,当然也可以通过设置相关属性使一个控件占据多行或多列。

从下一节开始将具体讲解如何使用这些布局管理器。在此之前,读者需要先了解一个布局文件的大致格式,以及如何去编写程序界面。下面给出一个布局文件实例:

在本节之前可能读者已经多次看过这种xml格式的文件。它在layout文件夹下,被Activity在onCreate()方法中引用。其中第一行<?xml version="1.0" encoding="utf-8"?>指定xml的版本以及编码格式,是固定的,读者在开发时无须改动。下面是一个RelativeLayout标签,包裹着一个TextView标签,这里RelativeLayout标签指定这个布局文件使用的是相对布局。就目前来说,在开始时读者姑且认为布局文件就是这样一种模式,第一行指定xml文件的版本与编码格式,之后最外层使用6种布局管理器中的一种,并在布局管理器中添加各种控件,这些控件就会按照相应布局管理器的特性排列。