线性布局-LinearLayout


  1. 线性布局不会换行,当组件一个挨着一个排列到头之后,剩下的组件将不会被显示出来。
  1. 线性布局中最重要的两个属性

android:orientation 设置布局管理器内组件的排列方式

水平排列:horizontal 垂直排列:vertical

android:gravity 设置布局管理器内组件的对齐方式

top|bottom|left|right|center_vertical|center_horizontal|center|…

  1. Android:gravity属性中的多个属性值之间可以用竖线隔开
View Code <? xmlversion="1.0"encoding="utf-8" ?>
< LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
android:layout_width
="match_parent"
android:layout_height
="match_parent"
android:orientation
="vertical"
android:gravity
="center|left" >

< Button
android:layout_width ="80dp"
android:layout_height
="wrap_content" />
< Button
android:layout_width ="80dp"
android:layout_height
="wrap_content" />
< Button
android:layout_width ="80dp"
android:layout_height
="wrap_content" />
< Button
android:layout_width ="80dp"
android:layout_height
="wrap_content" />
< Button
android:layout_width ="80dp"
android:layout_height
="wrap_content" />
< Button
android:layout_width ="80dp"
android:layout_height
="wrap_content" />


</ LinearLayout >


表格布局-TableLayout


  1. TableLayout 继承了LinearLayout
  2. TableLayout并不需要明确地声明包含多少行、多少列,而是通过TableRow、其他组件来控制表格的行数和列数。
  3. 表格布局中最重要的三个属性

android:shrinkColumns="0,1,2" - 为了保证表格能适应父容器的宽度,那么这列的所有单元格的宽度可以被收缩

android:stretchColumns="1,2" - 为了保证组件能完全填满表格空余空间,那么这列的所有单元格的宽度可以被拉伸

android:collapseColumns="2" – 这列的所有单元格会被隐藏

View Code <? xmlversion="1.0"encoding="utf-8" ?>
< LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
android:layout_width
="match_parent"
android:layout_height
="match_parent"
android:orientation
="vertical" >

< TableLayout
android:id ="@+id/table_layout_01"
android:layout_width
="match_parent"
android:layout_height
="wrap_content"
android:shrinkColumns
="0,1,2" >

< TableRow >

< Button
android:layout_width ="wrap_content"
android:layout_height
="wrap_content"
android:text
="0ddddddddddddddddddddddddddddddddd" />

< Button
android:layout_width ="wrap_content"
android:layout_height
="wrap_content"
android:text
="1ddddddddddddddddddddddddddddddddd" />

< Button
android:layout_width ="wrap_content"
android:layout_height
="wrap_content"
android:text
="2ddddddddddddddddddddddddddddddddd" />
</ TableRow >
</ TableLayout >

< TableLayout
android:id ="@+id/table_layout_02"
android:layout_width
="match_parent"
android:layout_height
="wrap_content"
android:stretchColumns
="1" >

< TableRow >

< Button
android:layout_width ="wrap_content"
android:layout_height
="wrap_content"
android:text
="0dd" />

< Button
android:layout_width ="wrap_content"
android:layout_height
="wrap_content"
android:text
="1dd" />

< Button
android:layout_width ="wrap_content"
android:layout_height
="wrap_content"
android:text
="2dd" />
</ TableRow >
</ TableLayout >

< TableLayout
android:id ="@+id/table_layout_03"
android:layout_width
="match_parent"
android:layout_height
="wrap_content"
android:collapseColumns
="2" >

< TableRow >

< Button
android:layout_width ="wrap_content"
android:layout_height
="wrap_content"
android:text
="0dd" />

< Button
android:layout_width ="wrap_content"
android:layout_height
="wrap_content"
android:text
="1dd" />

< Button
android:layout_width ="wrap_content"
android:layout_height
="wrap_content"
android:text
="2dd" />
</ TableRow >
</ TableLayout >

</ LinearLayout >


帧布局 – FrameLayout


帧布局容器为每个加入其中的组件创建一个空白的区域(称为一帧),所以每个子组件占据一帧,这些帧都会根据gravity属性执行自动对齐。

View Code <? xmlversion="1.0"encoding="utf-8" ?>
< FrameLayout xmlns:android ="http://schemas.android.com/apk/res/android"
android:layout_width
="match_parent"
android:layout_height
="match_parent"
android:orientation
="horizontal" >


< TextView
android:layout_width ="wrap_content"
android:layout_height
="wrap_content"
android:background
="#ff0000"
android:width
="210dp"
android:height
="50dp" />

< TextView
android:layout_width ="wrap_content"
android:layout_height
="wrap_content"
android:background
="#dd0000"
android:width
="180dp"
android:height
="50dp" />

< TextView
android:layout_width ="wrap_content"
android:layout_height
="wrap_content"
android:background
="#bb0000"
android:width
="150dp"
android:height
="50dp" />

< TextView
android:layout_width ="wrap_content"
android:layout_height
="wrap_content"
android:background
="#990000"
android:width
="120dp"
android:height
="50dp" />

< TextView
android:layout_width ="wrap_content"
android:layout_height
="wrap_content"
android:background
="#770000"
android:width
="90dp"
android:height
="50dp" />

< TextView
android:layout_width ="wrap_content"
android:layout_height
="wrap_content"
android:background
="#550000"
android:width
="60dp"
android:height
="50dp" />

< TextView
android:layout_width ="wrap_content"
android:layout_height
="wrap_content"
android:background
="#330000"
android:width
="30dp"
android:height
="50dp" />


</ FrameLayout >

相对布局 – RelativeLayout


  1. 相对布局容器内的子组件的位置总是相对于兄弟组件、父容器来决定的
  2. 两列比较重要的属性

相对与Parent容器

android:layout_ centerVertical="true" 布局容器水平居中

android:layout_centerHorizontal="true" 布局容器垂直居中

ndroid:layout_centerInParent ="true" 布局容器中央居中

android:layout_alignParentLeft="true" 布局容器左边对齐

android:layout_alignParentRight="true" 布局容器右边对齐

android:layout_alignParentTop="true" 布局容器顶部对齐

android:layout_alignParentBottom="true"布局容器底部对齐

相对于兄弟组件

android:layout_above 位于给出ID的上方

android:layout_below 位于给出ID的下方

android:layout_toLeftOf 位于给出ID的左边

android:layout_toRightOf 位于给出ID的右边

android:layout_alignTop 与给出ID的上边界对齐

android:layout_alignBottom 与给出ID的下边界对齐

android:layout_alignLeft 与给出ID的左边界对齐

android:layout_alignRight 与给出 ID 的右边界对齐 View Code <? xmlversion="1.0"encoding="utf-8" ?>
< RelativeLayout xmlns:android ="http://schemas.android.com/apk/res/android"
android:layout_width
="match_parent"
android:layout_height
="match_parent" >

< TextView
android:id ="@+id/center"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content"
android:layout_centerInParent
="true"
android:text
="Center" />

< TextView
android:id ="@+id/first"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content"
android:layout_above
="@id/center"
android:layout_alignLeft
="@id/center"
android:text
="Up" />

< TextView
android:id ="@+id/second"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content"
android:layout_below
="@id/center"
android:layout_alignLeft
="@id/center"
android:text
="Down" />

< TextView
android:id ="@+id/third"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content"
android:layout_toLeftOf
="@id/center"
android:layout_alignTop
="@id/center"
android:text
="Left" />

< TextView
android:id ="@+id/fourth"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content"
android:layout_toRightOf
="@id/center"
android:layout_alignTop
="@id/center"
android:text
="Right" />

</ RelativeLayout >

绝对布局 – AbsoluteLayout


  1. 开发人员自己通过X坐标、Y坐标来控制组件的位置。布局容器不再管理子组件的位置、大小。使用绝对布局很难兼顾不同屏幕大小、分辨率的问题。
  2. 两个重要的属性

layout_x: 指定该子组件的X坐标

layout_y:指定子组件的Y坐标

View Code <? xmlversion="1.0"encoding="utf-8" ?>
< AbsoluteLayout xmlns:android ="http://schemas.android.com/apk/res/android"
android:layout_width
="match_parent"
android:layout_height
="match_parent" >
< TextView
android:layout_x ="20dp"
android:layout_y
="20dp"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content"
android:text
="用户名:" />
< EditText
android:layout_x ="80dp"
android:layout_y
="15dp"
android:layout_width
="wrap_content"
android:width
="200dp"
android:layout_height
="wrap_content" />

</ AbsoluteLayout >

更多相关文章

  1. Android(安卓)LinearLayout的布局属性介绍
  2. android broadcastReceiver生命周期及两种应用——四大组件之Bro
  3. Android知识整理
  4. Android四大基本组件-Service详解
  5. Android(安卓)- LayoutInflater 的使用
  6. android滑动view
  7. [转]Android(安卓)应用程序基础(Application Fundamentals)
  8. Android(安卓)系统基础
  9. android:layout_gravity和android:gravity属性的区别

随机推荐

  1. 【故障处理】DG环境主库丢失归档情况下数
  2. BRCM5.02编译二:Error: Could not retreiv
  3. 【故障处理】队列等待之TX - allocate IT
  4. 【等待事件】System I/O类 等待事件(3.2)--
  5. BRCM5.02编译五: fatal error: uuid/uuid.
  6. 【等待事件】User I/O类 等待事件(2.7)--di
  7. BRCM5.02编译一 : 缺少工具链路
  8. Flask 入门一( flask 框架和 flask-script
  9. BRCM5.02编译七:No package 'uuid' found
  10. BRCM5.02编译八: ERROR: you are missing