写在前面
一直想写一写布局,趁今天有空好好总结一下,留着以后看。
综述
Android的布局有好多好多种,官方的、自定义的等等,五花八门。原来安卓有五大基本布局,现在共有六种,前五种是传统的,还有一种是比较新的。
五种传统布局
LinearLayout(线性布局)
RelativeLayout(相对布局)
FrameLayout(帧布局)
AbsoluteLayout(绝对布局)
TableLayout(表格布局)
其中,最常用的布局是前三种,绝对布局用过一点,表格布局根本没用过(可能会很好用吧,但是前几种满足了我的日常需求)
新布局
ConstraintLayout(约束布局)
谷歌爸爸在2016年新出的布局,现在取代RelativeLayout成了创建空Activity的默认布局,非常非常强大,操作非常简洁。
接下来主要对LinearLayout(线性布局)、RelativeLayout(相对布局)、FrameLayout(帧布局)、ConstraintLayout(约束布局)进行介绍
一、LinearLayout
0.简介
线性布局,最常用的布局之一,所有包含在线性布局里的控件在线性方向上依次排列。接下来看看一些线性布局常用的属性。
1.方向
在线性布局里面的控件,是按照线性的顺序进行排列的,方向有两种:横向和纵向。
属性和属性值:
android:orientation="horizontal" //水平
android:orientation="vertical" //垂直
实例:
//水平
android:orientation="horizontal"
水平
//垂直
android:orientation="vertical"
垂直
2.对齐方式
属性:
android:gravity
android:layout_gravity
需要注意的是,这两个属性是有区别的:
android:gravity是指本元素的子元素相对它的对齐方式,
android:layout_gravity是指本元素相对它的父元素的对齐方式。
相同的,对于其他属性,如果加上layout_前缀,就代表着本元素相对父元素的属性。
常用的属性值:
android:gravity="center_horizontal" 子控件水平方向居中
android:gravity="center_vertical" 子控件竖直方向居中
android:gravity="center" 子控件竖直方向和水平方向居中
android:gravity= start || end || top || bottom 子控件左对齐 || 右对齐 || 顶部对齐 || 底部对齐
android:gravity= left || right 子控件左对齐 || 右对齐
这里的start和left属性,end和right属性需要注意一下,这里写的是对于中国的情况而言。实际上,他们两个是不同的,left是绝对的左边,而start会根据不同的国家习惯改变。比如在从右向左顺序阅读的国家,start代表的就是在右边
实例:
效果一:第一个子控件设置水平垂直
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.icephone_1.layouttest.MainActivity">
android:id="@+id/tx_one"
android:textSize="30sp"
android:layout_gravity="center_horizontal" //子控件设置水平垂直
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
android:id="@+id/tx_two"
android:textSize