一、简介
开发一个APP,有一个漂亮的界面是很重要的,因为用户第一眼看到的就是我们的界面,界面好看了才能更加吸引大家来使用,并且写逻辑代码之前一般也要先搭好布局,所以我们要能熟练的使用各种布局方式和各个组件。
本次要说的是如下六种基本布局方式:
1、线性布局(LinearLayout)
2、相对布局(RelativeLayout)
3、帧布局(FrameLayout)
4、表格布局(TableLayout)
5、网格布局(GridLayout)
6、绝对布局(AbsoluteLayout)
其中,表格布局是线性布局的子类。网格布局是android 4.0后新增的布局
本次先来了解线性布局(LinearLayout)
二、使用方式
1、线性布局(LinearLayout)
最常用的一种布局方式,具有如下属性:
"android: orientation" 控制子控件排列方向,属性值垂直(vertical)和水平(horizontal),默认水平方向
”android:layout_width" 宽度,属性值wrap_content,match_parent或者fill_parent,也可以自己设置数值,单位dp
"android:layout_height" 高度属性值wrap_content,match_parent或者fill_parent,也可以自己设置数值,单位dp
"android:layout_weight" 权重,用来分配当前控件在剩余空间的大小,使用权重一般要把分配该权重方向的长度设置为 零,比如在水平方向分配权重,就把width设置为零。
"android:layout_gravity" 相对于父控件位置
"android:gravity" 子控件的位置,常用属性值有center、center_vertical(垂直居中)、center_horizontal(水平居中)、top、 bottom、left、right等
示例代码:
[XML] 纯文本查看 复制代码 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.company.helloworld.firstapplication.MainActivity">
<!-- 上边LinearLayout -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<!-- 控件1 -->
<TextView
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@color/colorAccent"
android:gravity="center"
android:text="1" />
<!-- 控件2 -->
<TextView
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="right"
android:background="@color/colorPrimary"
android:gravity="center"
android:text="2" />
</LinearLayout>
<!-- 分割线 -->
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/colorPrimary" />
<!-- 下边LinearLayout -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal">
<!-- 控件3 -->
<TextView
android:layout_width="50dp"
android:layout_height="100dp"
android:background="@color/colorAccent"
android:gravity="center_vertical"
android:text="3"
android:textSize="18sp" />
<!-- 控件4 -->
<TextView
android:layout_width="100dp"
android:layout_height="50dp"
android:background="@color/colorPrimary"
android:gravity="center_horizontal"
android:text="4"
android:textSize="18sp" />
</LinearLayout>
</LinearLayout>
效果图:
注意:
当orientation为vertical时,子控件设置android:layout_gravity="center_vertical"或者自身设置android:gravity="center_vertical"是无效的。
同样当orientation为horizontal时,子控件设置android:layout_gravity="center_horizontal"或者自身设置android:gravity="center_horizontal"是无效的
|