Android|Android 基础之六大布局
网上有人比喻的很好:布局好比是建筑里的框架,组件按照布局的要求依次排列,就组成了用于看见的漂亮界面了。
布局类型
文章图片
布局类型 1. LinearLayout (线性布局)
线性布局是按照水平或垂直的顺序将子元素(可以是控件或布局)依次按照顺序排列,每一个元素都位于前面一个元素之后。线性布局分为两种:水平方向和垂直方向的布局。分别通过属性android:orientation="vertical" 和 android:orientation="horizontal"来设置。
- 示例代码:
2. RelativeLayout (相对布局) RelativeLayout 继承于 android.widget.ViewGroup,其按照子元素之间的位置关系完成布局的,作为Android系统五大布局中最灵活也是最常用的一种布局方式,非常适合于一些比较复杂的界面设计。
- 示例代码:
3. TableLayout (表格布局) 【Android|Android 基础之六大布局】表格布局,适用于多行多列的布局格式,每个TableLayout是由多个TableRow组成,一个TableRow就表示TableLayout中的每一行,这一行可以由多个子元素组成。实际上TableLayout和TableRow都是LineLayout线性布局的子类。但是TableRow的参数android:orientation属性值固定为horizontal,且android:layout_width=MATCH_PARENT,android:layout_height=WRAP_CONTENT。所以TableRow实际是一个横向的线性布局,且所以子元素宽度和高度一致。
4. FrameLayout (框架布局)
- 放入的所有控件都被放置在最左上的区域;
- 无法为控件指定一个确切的位置;
- 下一个子控件会重叠覆盖上一个子控件。
- 采用坐标轴的方式定位控件;
- 左上角是(0,0)点,往右X轴递增,往下Y轴递增;
- 定位属性: android:layout_x、android:layout_y
- ConstraintLayout是Android Studio 2.2中主要的新增功能之一;
- ConstraintLayout非常适合使用可视化的方式来编写界面;
- ConstraintLayout 可以有效地解决布局嵌套过多的问题。
目前,Android Studio 是 2.2或以上版本默认布局文件首选就是 ConstraintLayout。
基本使用请参考:Android新特性介绍,ConstraintLayout完全解析
通过设置选择器(selector)可使控件 在不同操作下(默认、点击等) 显示不同样式
7.2 属性
名称 | 说明 |
---|---|
android:drawable | 放一个drawable资源 |
android:state_pressed | 按下状态,如一个按钮触摸或者点击。 |
android:state_focused | 取得焦点状态,比如用户选择了一个文本框。 |
android:state_hovered | 光标悬停状态,通常与focused state相同,它是4.0的新特性 |
android:state_selected | 选中状态 |
android:state_enabled | 能够接受触摸或者点击事件 |
android:state_checked | 被checked了,如:一个RadioButton可以被check了。 |
button_selector.xml
< selector xmlns:android="http://schemas.android.com/apk/res/android"> < !-- 指定按钮按下时的图片 -->
< !-- 指定按钮松开时的图片 -->
< /selector>
在布局文件main.xml中控件的属性设置:
推荐阅读
- PMSJ寻平面设计师之现代(Hyundai)
- android第三方框架(五)ButterKnife
- 太平之莲
- 闲杂“细雨”
- 七年之痒之后
- 深入理解Go之generate
- 由浅入深理解AOP
- 期刊|期刊 | 国内核心期刊之(北大核心)
- 生活随笔|好天气下的意外之喜
- 感恩之旅第75天