1.Android RelativeLayout 属性
1) 相对于给定ID控件
android:layout_above | 将该控件的底部置于给定ID的控件之上; |
android:layout_below | 将该控件的底部置于给定ID的控件之下; |
android:layout_toLeftOf | 将该控件的右边缘与给定ID的控件左边缘对齐; |
android:layout_toRightOf | 将该控件的左边缘与给定ID的控件右边缘对齐; |
android:layout_alignBaseline | 将该控件的baseline与给定ID的baseline对齐; |
android:layout_alignTop | 将该控件的顶部边缘与给定ID的顶部边缘对齐; |
android:layout_alignBottom | 将该控件的底部边缘与给定ID的底部边缘对齐; |
android:layout_alignLeft | 将该控件的左边缘与给定ID的左边缘对齐; |
android:layout_alignRight | 将该控件的右边缘与给定ID的右边缘对齐; |
2) 相对于父组件
android:layout_alignParentTop | 果为true,将该控件的顶部与其父控件的顶部对齐; |
android:layout_alignParentBottom | 如果为true,将该控件的底部与其父控件的底部对齐; |
android:layout_alignParentLeft | 如果为true,将该控件的左部与其父控件的左部对齐; |
android:layout_alignParentRight | 如果为true,将该控件的右部与其父控件的右部对齐; |
3) 居中
android:layout_centerHorizontal | 如果为true,将该控件的置于水平居中; |
android:layout_centerVertical | 如果为true,将该控件的置于垂直居中; |
android:layout_centerInParent | 如果为true,将该控件的置于父控件的中央; |
4)指定移动像素
android:layout_marginTop | 上偏移的值; |
android:layout_marginBottom | 下偏移的值; |
android:layout_marginLeft | 左偏移的值; |
android:layout_marginRight | 右偏移的值; |
example:
android:layout_below= "@id/***"
android:layout_alignBaseline = "@id/***"
android:layout_alignParentTop = true
android:layout_marginLeft = “10px”
2.一些常用的公共属性介绍
1)
layout_width | 宽 |
fill_parent | 宽度和父元素相同 |
wrap_content | 宽度随本身的内容所调整,或者指定 px值来设置宽 |
2)
layout_height | 高 |
fill_parent | 高度和父元素相同 |
wrap_content | 高度随本身的内容所调整,或者指定 px值来设置高 |
3)
background | 设置背景图 |
4)
Padding | 设置边距可以具体设置paddingBottom,paddingLeft,paddingRight,paddingTop来设定不同的px值 |
5)
id | 该object的id号 |
@+id/id1 | 代表添加新的id名为id1 |
@id/id1 | 代表引用id1的控件 |
6)
layout_weight | 重要度,个人理解为显示的优先级。默认为0(最高),数值越大,优先级越低 |
【*】例子
要让layout_weight生效,需要父层或父父层的相应,layout_width/layout_height ="fill_parent",否则
wrap_content 会压缩到最小足够空间!
7)
layout_gravity | Container组件的对齐方式,组件在layout里面的对齐方式。 |
8)
gravity | 文字在组件里的对齐方式 |
例如设置button里面的文字在button中居中显示。
* 大多数属性是可以调用对应的函数来动态改变状态的,请查看SDK Doc。
3.Linear Layout 线形布局
Orientation | 容器内元素的排列方式 |
Vertical | 子元素们垂直排列 |
Horizontal | 子元素们水平排列 |
【说明】
1】在代码里可通过setOrientation()进行动态改变,值分别为HORIZONTAL或者VERTICAL。
2】在LinearLayout,宽度/高度都是按着组件的次序逐个占用的!所以当某个组件设置"fill_parent",在没有设置Layout_weight的情况下,该组件会占用了余下的空间,那么在它后面的组件就会显示不出来。如下图的EditText如果没有设置android:layout_weight="1",它下面的其他组件就看不见了!
3】baselineAligned一般情况下,这个属性默认为true,代表在同一方向的组件都基于第一个组件对齐。所以可以看到下图的text1, button1,text2是在同一水平线的。当不需要这效果时,可以设置为false。