Layout常⽤属性介绍
在Android中,共有五种布局⽅式,分别是:FrameLayout(框架布
局),LinearLayout (线性布局),AbsoluteLayout(绝对布
局),RelativeLayout(相对布局),TableLayout(表格布局)。
Layout公共属性
第⼀类:属性值为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布局
android:layout_alignWithParentIfMissing  如果对应的兄弟元素不到的话就以⽗元素做参照物
第⼆类:属性值必须为id的引⽤名“@id/id-name”
android:layout_below      在某元素的下⽅
android:layout_above      在某元素的的上⽅
android:layout_toLeftOf  在某元素的左边
android:layout_toRightOf  在某元素的右边
android:layout_alignTop  本元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft  本元素的左边缘和某元素的的左边缘对齐
android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight  本元素的右边缘和某元素的的右边缘对齐
第三类:属性值为具体的像素值,如30dip,40px
android:layout_marginBottom              离某元素底边缘的距离
android:layout_marginLeft                  离某元素左边缘的距离
android:layout_marginRight                离某元素右边缘的距离
:layout_marginTop                  离某元素上边缘的距离
--------------------------------------------------------------------------------------------------
FrameLayout:
这个布局可以看成是墙脚堆东西,有⼀个四⽅的矩形的左上⾓墙脚,我们放了第⼀个东西,要再放⼀个,那就在放在原来放的位置的上⾯,这样依次的放,会盖住原来的东西。这个布局⽐较简单,也只能放⼀点⽐较简单的东西。
AbsoluteLayout::
绝对布局犹如div指定了absolute属性,⽤X,Y坐标来指定元素的位置android:layout_x="20px" android:layout_y="12px" 这种布局⽅式也⽐较简单,但是在垂直随便切换时,往往会出问题,⽽且多个元素的时候,计算⽐较⿇烦。
TableLayout
TableLayout具有的重要属性:
android:shrinkColumns:该属性⽤来指明需要折⾏显⽰的列(实际中很有⽤!)下标从0开始的,多列⽤“,”隔开。
android:collapseColumns:该属性设置需要隐藏的列,下标同样是从0开始的,如有多列⽤“,”隔开。
android:stretchColumns:设置指定的列可伸展,该列会尽量填满可⽤空间,多列⽤“,”隔开
TableRow具有的重要属性:
android:layout_column:控件在表格中所处的列,下标从0开始。
android:layout_span:控件跨越的列数。
在TableLayout中包含TableRow
LinearLayout:
线性布局,这个东西,从外框上可以理解为⼀个div,他⾸先是⼀个⼀个从上往下罗列在屏幕上。每⼀个LinearLayout⾥⾯⼜可分为垂直布局(android:orientation="vertical")和⽔平布局(android:orientation="horizontal" )。当垂直布局时,每⼀⾏就只有⼀个元素,多个元素依次垂直往下;⽔平布局时,只有⼀⾏,每⼀个元素依次向右排列。
linearLayout中有⼀个重要的属性 android:layout_weight="1",这个weight在垂直布局时,代表⾏距;⽔平的时候代表列宽;weight值越⼤就越⼤。
对齐:layout_gravity
垂直(vertical)的LinearLayout布局内⽆法通过控件的android:layout_gravity=""进⾏垂直居中,可以⽔平居中。
⽔平(horizontal)的LinearLayout布局内⽆法通过控件的android:layout_gravity=""进⾏⽔平居中,可以垂直居中。
2个都可以⽤布局的属性android:gravity指定所有控件的居中情况(⽤center可以⽔平,垂直居中)。
如果想要某个控件单独⽔平垂直居中,可以在控件外⾯再套个LinearLayout,然后android:gravity。
LinearLayout中gravity与layout_gravity
LinearLayout有两个⾮常相似的属性:android:gravity与android:layout_gravity。他们的区别在于:android:gravity⽤于设置View组件的对齐⽅式,⽽android:layout_gravity⽤于设置组件的对齐⽅式。
通俗点说就是:
android:gravity属性是对该view 内容的限定.⽐如⼀个button 上⾯的text. 你可以设置该text 在view的靠左,靠右等位置.该属性就⼲了这个.
android:layout_gravity是⽤来设置该view相对与起⽗view 的位置.⽐如⼀个button 在linearlayout⾥,你想把该button放在靠左靠右等位置就可以通过该属性设置.
我们弄个最外布局,然后⾥⾯包了⼏个布局,如果要使这⼏个布局都靠底,就可以在最外布局的属性⾥设置androi:gravity="botton" 因为gravity是对⾥⾯的内容起作⽤
RelativeLayout