Android|Android 基础之六大布局

网上有人比喻的很好:布局好比是建筑里的框架,组件按照布局的要求依次排列,就组成了用于看见的漂亮界面了。
布局类型
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 (框架布局)
  • 放入的所有控件都被放置在最左上的区域;
  • 无法为控件指定一个确切的位置;
  • 下一个子控件会重叠覆盖上一个子控件。
5. AbsoluteLayout (绝对布局)
  • 采用坐标轴的方式定位控件;
  • 左上角是(0,0)点,往右X轴递增,往下Y轴递增;
  • 定位属性: android:layout_x、android:layout_y
6. ConstraintLayout (约束布局)
  • ConstraintLayout是Android Studio 2.2中主要的新增功能之一;
  • ConstraintLayout非常适合使用可视化的方式来编写界面;
  • ConstraintLayout 可以有效地解决布局嵌套过多的问题。
    目前,Android Studio 是 2.2或以上版本默认布局文件首选就是 ConstraintLayout。
    基本使用请参考:Android新特性介绍,ConstraintLayout完全解析
7.选择器(Selector) 7.1 作用
通过设置选择器(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了。
7.3 实例
button_selector.xml
< selector xmlns:android="http://schemas.android.com/apk/res/android"> < !-- 指定按钮按下时的图片 --> < !-- 指定按钮松开时的图片 --> < /selector>

在布局文件main.xml中控件的属性设置:

    推荐阅读