做 Android Layout 达人~ 【首届 Google 暑期大学生博客分享大赛——2010 Android 篇】

LinearLayout 、FrameLayout、RelativeLayout是 Android界面布局中使用得最多的三种方式,

 

本文主要讨论 : 三者的特点和重要属性参数 

Layout 属性总结和比较


FrameLayout  和 LinearLayout 的布局方式比较相似,

最大的区别在于 LinearLayout (线性布局)有一个  orientation 属性, 决定了Layout中元素在线性排布时的走向,该属性值分为 vertical horizontal 两种,分别将布局方向设为 竖直方向和 水平方向

界面元素会自动按照 orientation 所指定的方向依次排布。

FrameLayout 没有这一属性,整个Layout更像一块画布,Layout内元素依靠 layout_gravity 属性进行排布。

需要注意的是,LinearLayout orientation 属性会对 layout_gravity 产生影响,

当它的值是 vertical, layout_gravity 属性设置为 top bottom 无效(因为Layout内元素从上到下依次排布)

同理,当它的值是 horizontal, layout_gravity 属性 left right 属性值无效。

 

另外, LinearLayout FrameLayout 多了一个重要的属性 layout_weight ,通过指定各个元素的layout_weight,Layout内的各个元素会根据 layout_weight 的比值对空白区域进行填充,撑满某一行或某一列

 

RelativeLayout 和上述两种Layout的布局机制有所不同,

其内部的元素无法设置 layout_gravity 属性和 layout_weight属性,

RelativeLayout 主要依靠内部元素的相对位置信息(元素之间的相对关系、相对Parent的位置关系)对元素进行排布

例如 anroid:layout_toRightOf  = "@id/...."    (元素之间的相对关系)

          android:layout_alignParentRight = "true"   (相对于Parent的位置)

          android:layout_centerInParent = "true"

另外,   

android:layout_centerVertical="true" , android:layout_centerHorizontal="true" 来代替 layout_gravity的相应属性

分别使一个View 元素在父容器中竖直居中 和 水平居中。 

 

以上三种 Layout 本身以及内部元素共有的重要属性

Padding 系列 ,paddingLeft  ,用于确定在一个view内部,留出的空白区域,

Margin 系列 ,layout_marginLeft ,用于确定一个view外部,和它的相邻元素之间留出的空白区域

layout_width layout_height ,设置元素的宽和高,

一般设为以下两种值: match_parent wrap_content,

match_parent 填满parent中空白的区间, wrap_content 提供刚好能包裹内容的大小

gravity 属性,可以设置为 top,left,bottom,right,center_vertical,center_horizontal等,用于指定在元素内部,元素如何对齐。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值