安卓开发---02 Android布局_当界面比较复杂的时候,需要嵌套多层的 linearlayout,这样就会降低ui render的

  • TableLayout(表格布局) 基本不用

1. 帧布局FrameLayout
帧布局是Android布局中最简单的一种,使用FrameLayout标签。
帧布局为每个加入其中的控件创建一个空白区域(称为一帧,每个控件占据一 帧)。釆用帧布局方式设计界面时,只能在屏幕左上角显示一个控件,如果添加多个控件,这些控件会按照顺序在屏幕的左上角重叠显示。

例子:使用帧布局添加不同大小的TextView,给不同的背景颜色看效果。
#ff33ffff  #ff33ccff   #ff3399ff   #ff3366ff   #ff3300ff
Layout_gravity


2.线性布局LinearLayout(解释权重)
四个极其重要的参数,直接决定元素的布局和位置

android:layout_gravity 本元素相对于父元素的重力方向
android:gravity 本元素所有子元素的重力方向
android:orientation 线性布局以列或行来显示内部子元素V H
android:layout_weight 子元素对未占用空间水平或垂直分配权重值

当 android:orientation="vertical"  时, 只有水平方向的设置才起作用,垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的。
当 android:orientation="horizontal" 时, 只有垂直方向的设置才起作用,水平方向的设置不起作用。即:top,bottom,center_vertical 是生效的。

android:layout_gravity 和 android:gravity 的区别

android:gravity对元素本身起作用-本身元素显示在什么位置
android:layout_gravity相对与它的父元素-元素显示在父元素的什么位置。
如:Button控件
android:layout_gravity 表示button在界面上的位置
android:gravity表示button上的字在button上的位置。
可选值[多选时用“|”分开] 
top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical。


3.网格布局GridLayout
GridLayout是Android4.0引入的网格布局,使用它可以减少布局嵌套。
GridLayout 使用属性:

android:columnCount	最大列数
android:rowCount	最大行数
android:orientation	GridLayout中子元素的布局方向


item属性:

android:layout_column	指定该单元格在第几列显示
android:layout_row	指定该单元格在第几行显示
android:layout_columnSpan	指定该单元格占据的列数
android:layout_rowSpan	指定该单元格占据的行数
android:layout_gravity	指定该单元格在容器中的位置
android:layout_columnWeight	(API21加入)列权重
android:layout_rowWeight	(API21加入) 行权重


4. 相对布局RelativeLayout

当界面比较复杂的时候,需要嵌套多层的 LinearLayout,这样就会降低UI Render的效率(渲染速度),而且如果是listview或者GridView上的 item,效率会更低,另外太多层LinearLayout嵌套会占用更多的系统资源,还有可能引发stackoverflow; 但是如果我们使用RelativeLayout的话,可能仅仅需要一层就可以完成了,以父容器或者兄弟组件参考+margin +padding就可以设置组件的显示位置。

第一类:属性值为true或false

android:layout_centerHorizontal              水平居中
android:layout_centerVertical                垂直居中
android:layout_centerInparent                相对于父元素完全居中
android:layout_alignParentBottom             贴紧父元素的下边缘
android:layout_alignParentLeft               贴紧父元素的左边缘
android:layout_alignParentRight              贴紧父元素的右边缘
android:layout_alignParentTop                贴紧父元素的上边缘
android:layout_alignWithParentIfMissing      如果对应的兄弟元素找不到的话就以父元素做参照物
android:layout_centerInParent="true"         相对父控件居中


第二类:属性值必须为id的引用名“@id/id-name” tv

android:layout_below   =‘@+id/XXX’           在某元素的下方   
android:layout_above                         在某元素的的上方
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值