RelativeLayout,LinerLayout,GridLayout,FrameLayout随记

RelativeLayout:

  RelativeLayout按照各子元素之间的位置关系完成布局。在此布局中的子元素里与位置相关的属性将生效。例如android:layout_below, android:layout_above等。子元素就通过这些属性和各自的ID配合指定位置关系。注意在指定位置关系时,引用的ID必须在引用之前,先被定义,否则将出现异常。
  RelativeLayout里常用的位置属性如下:android:layout_toLeftOf —— 该组件位于引用组件的左方
,android:layout_toRightOf —— 该组件位于引用组件的右方,android:layout_above —— 该组件位于引用组件的上方
,android:layout_below —— 该组件位于引用组件的下方,android:layout_alignParentLeft —— 该组件是否对齐父组件的左端,android:layout_alignParentRight —— 该组件是否齐其父组件的右端,android:layout_alignParentTop —— 该组件是否对齐父组件的顶部
 ,a ndroid:layout_alignParentBottom —— 该组件是否对齐父组件的底部
,android:layout_centerInParent —— 该组件是否相对于父组件居中
,android:layout_centerHorizontal —— 该组件是否横向居中
,android:layout_centerVertical —— 该组件是否垂直居中,RelativeLayout是最灵活的一种布局结构,比较适合一些复杂界面的布局。

LinearLayout:

  LinearLayout按照垂直或者水平的顺序依次排列子元素,每一个子元素都位于前一个元素之后。如果是垂直排列,那么将是一个单列的结构,每一行只会有一个元素,而不论这个元素的宽度为多少,都将占据整行空间;如果是水平排列,那么将是一个单行的结构。如果搭建两行两列的结构,通常的方式是先垂直排列两个元素,每一个元素里再包含一个LinearLayout进行水平排列。
  LinearLayout中的子元素属性android:layout_weight用于描述该子元素在剩余空间中占有的大小比例。当一行只有一个文本框,那么它的默认值就为0,如果一行中有两个等长的文本框,那么他们的android:layout_weight值可以是同为1。如果一行中有两个不等长的文本框,那么他们的android:layout_weight值分别为1和2,布局将两个TextView的宽度均设为wrap_content,一个权重为1,一个权重为2,权重为1的占了三分之一,权重为2的占了三分之二。布局将两个TextView的宽度均设为match_parent,一个权重为1,一个权重为2,权重为1的反而占了三分之二。

GridLayout:

    GridLayout布局使用虚细线将布局划分为行、列和单元格,也支持一个控件在行、列上都有交错排列。与LinearLayout布局一样,也分为水平和垂直两种方式,默认是水平布局,一个控件挨着一个控件从左到右依次排列,但是通过指定Android:columnCount设置列数的属性后,控件会自动换行进行排列。另一方面,对于GridLayout布局中的子控件,默认按照wrap_content的方式设置其显示。如果要指定某控件显示在固定的行或列,设置该子控件的android:layout_row和android:layout_column即可。android:layout_rowSpan或者layout_columnSpan属性分别为跨行、跨列属性。

FrameLayout:

  FrameLayout布局中,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置,它们统统放于这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素之上,将前面的子元素部分和全部遮挡。
    



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值