基础界面布局

1.Android布局的概念图

图 1-1 Android布局管理器的类图

图 1-2 Android布局的xml关系图
在这里插入图片描述

由上述两张图结合可知,android布局类在代码层面是ViewGroup的子类,布局也是布局管理器,因为布局里面还可以添加布局;布局管理器里面既可以添加多个布局管理器又可以添加多个控件,而控件里面不能在添加布局或控件了。

2.布局的通用属性

属性名称功能描述
android:id设置布局的标识
android:layout_width设置布局的宽度(dp)
android:layout_height设置布局的高度(dp)
android:background设置布局的背景
android:layout_margin设置当前布局与屏幕边界或与周围控件的距离
android:padding设置当前布局边缘与该布局中控件边缘的距离

重要属性说明:
android:id ** 用于设置当前布局的唯一标识。。为布局指定android:id 属性后,在R.java文件中,会自动生成对应的int值。在Java代码中通过为findViewById()方法传入该int值来获取该布局对象。(不同的布局文件中可以有相同的标识名,因为R.java文件是按照文件路径来查找的)
android:background** 用于设置布局背景,其值可以引用图片资源,也可以是颜色资源(尽量使用xml文件,使用图片资源会占用较大的内存)

3.线性布局(LinearLayout)

3.1.常用子属性

属性名称功能描述
android: orientation设置布局内控件的排列顺序
android: layout_weight在布局内设置控件权重,属性值可直接写int值
android:gravity内部控件对齐方式

android: oruentation属性。用于设置LinearLayout布局中控件的排列顺序,其可选值为vertical和horizontal。其中:
①vertical:表示LinearLayout布局内控件依次从上到下竖直排列。
②horizontal:表示LinearLayout布局内控件依次从左到右水平排列。
●**android:layout_weight:**权重,用来分配当前控件在剩余空间的大小,只有比例值,这在进行屏幕适配时起到关键作用。使用权重一般要把分配该权重方向的长度设置为零,比如在水平方向分配权重,就把width设置为零。
要把android:gravity与android:layout_gravity区分开,layout_gravity是用来设置自身相对于父元素的布局

4.表格布局(TableLayout)

表格布局继承自LinearLayout,通过TableRow设置行,列数由TableRow中的子控件决定. 如果直接在TableLayout中添加子控件会占据整个一行。

4.1.常用布局子属性

属性名称功能描述
android:stretchColumns设置可被拉伸的列。如:android:stretchColumns=“0”,表示第1列可被拉伸
android:shrinkColumns设置可被收缩的列。如:android:shrinkColumns=“1,2”,表示第2,3列可收缩
android:collapseColumns设置可被隐藏的列。如:android:collapseColumns=“0”,表示第1列可被隐藏

注意: shrinkColumns只有在行超过屏幕时生效,第0列和第2列收缩的幅度是一样的。stretchColumns只有在所有行都没有沾满横向屏幕时才会生效,如果有一行已经正好或者超过屏幕的宽度,那么该属性无效。

4.2.布局中控件的常用属性

属性名称功能描述
android:layout_column设置该控件显示的位置,如android:layout_column=“1” 表示在第2个位置显示
android:layout_span设置该控件占据几行,默认为1行

5.帧布局(FrameLayout)

用于在屏幕上创建一块空白区域,添加到该区域中的每个子控件占一帧,这些帧会一个一个叠加在一起,后加入的控件会叠加在上一个控件上层。默认情况下,帧布局中的所有控件会与左上角对齐。(通常通过margin,或者layout_gravity来移动子控件)
PS.一般把framelayout做容器,不当布局来看待(用于自定义viewGroup)

6.相对布局(RelativeLayout)

通过相对定义的方式指定子控件的位置。
●相对于父控件 android:layout_alignParentxxxx=“true”
●相对给定Id控件,例如:android:layout_above=“@id/**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值