【Android】Android的五大布局

android五大布局

android.widget.AbsoluteLayout 绝对布局

android.widget.RelativeLayout 相对布局

android.widget.LinearLayout 线性布局

android.widget.TableLayout 表格布局

android.widget.FrameLayout 层布局

如果给这五大布局使用频率做一个排序,应该如下

1.LinearLayout

2.FrameLayout

3.RelativeLayout

4.TableLayout 

5.AbsoluteLayout


1.线性布局 LinearLayout

LinearLayout是用的最多的布局,也是最简单的布局。

LinearLayout按照垂直或者水平的顺序依次排列子元素,每一个子元素都位于前一个元素之后。如果是垂直排列,那么将是一个N行单列的结构,每一行只会有一个元素,而不论这个元素的宽度为多少;如果是水平排列,那么将是一个单行N列的结构。如果搭建两行两列的结构,通常的方式是先垂直排列两个元素,每一个元素里再包含一个LinearLayout进行水平排列。

  LinearLayout中的子元素属性android:layout_weight生效,它用于描述该子元素在剩余空间中占有的大小比例。加入一行只有一个文本框,那么它的默认值就为0,如果一行中有两个等长的文本框,那么他们的android:layout_weight值可以是同为1。如果一行中有两个不等长的文本框,那么他们的android:layout_weight值分别为1和2,那么第一个文本框将占据剩余空间的三分之二,第二个文本框将占据剩余空间中的三分之一。android:layout_weight遵循数值越小,重要度越高的原则。

线性布局特有参数

android:orientation="vertical" 设置纵向线性

android:orientation="horizontal" 设置横向线性

android:layout_weight="1" 设置比重

示例:

<LinearLayout

  ...

  android:orientation="horizontal">

  <TextView

  ...

  android:layout_weight="2"/>

  <TextView

  ...

  android:layout_weight="1"/>

</LinearLayout>


2.层布局 FrameLayout

FrameLayout是最厚的布局。

FrameLayout中添加的View都只能从左上角开始,然后一个一个叠加起来。用来叠加其他布局用的。

FramLayout的布局用法最简单,把子节点放进去就ok了

FramLayout最值得研究的就是他的点击消息怎么传递的。


3.相对布局 RelativeLayout

RelativeLayout是最容易牵一发而动全身的布局。

每个View都是相对另一个View来确定位置,如果你要删除某个View,则很可能牵连其他的View。

RelativeLayout里常用的位置属性如下:
    android:layout_toLeftOf —— 该组件位于引用组件的左方
    android:layout_toRightOf —— 该组件位于引用组件的右方
    android:layout_above —— 该组件位于引用组件的上方
    android:layout_below —— 该组件位于引用组件的下方
         android:layout_alignParentLeft —— 该组件是否对齐父组件的左端
         android:layout_alignParentRight —— 该组件是否齐其父组件的右端
         android:layout_alignParentTop —— 该组件是否对齐父组件的顶部
         android:layout_alignParentBottom —— 该组件是否对齐父组件的底部
      android:layout_centerInParent —— 该组件是否相对于父组件居中
    android:layout_centerHorizontal —— 该组件是否横向居中
    android:layout_centerVertical —— 该组件是否垂直居中

示例:

<RelativeLayout
  ...
  android:background="#50124578">
  <TextView
  ...
  android:layout_centerInParent="true"/>
  <TextView
  ...
  android:layout_toRightOf="@id/textview1"
  android:layout_alignTop="@id/textview1"/>
</RelativeLayout>
注意:横向纵向都要设置参考值,否则就是默认值处理,默认左上对齐与Parent


4.表格布局 TableLayout

TableLayout是最规矩的布局。

TableLayout其实就是在LinearLayout基础上进一步扩展,用LinearLayout合成一个横向+纵向的特有布局。

特有参数

android:collapseColumns="0,1"折叠

android:shrinkColumns="0,1" 收缩

android:stretchColumns="0,1" 拉伸

android:layout_span="3" 表示两个单元格合并

示例:

<TableLayout
  android:stretchColumns="0,1">
  <TableRow>
    <TextView
    android:layout_span="3"/>
    <TextView/>
  </TableRow>
  <TableRow>
    <TextView/>
    <TextView/>
  </TableRow>
</TableLayout>
还有很多可研究的地方,用的不多就不研究了

5.绝对布局 AbsoluteLayout

要写嘛!都是淘汰的产品了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值