Layout常用属性介绍

来源:互联网 发布:网络电视无信号怎么办 编辑:程序博客网 时间:2024/05/08 23:26

在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_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                 离某元素右边缘的距离 

    android: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
http://blog.csdn.net/kiritor/article/details/8646260

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用于设置Container组件的对齐方式。
通俗点说就是:
android:gravity属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.该属性就干了这个. 
android:layout_gravity是用来设置该view相对与起父view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左靠右等位置就可以通过该属性设置. 
我们弄个最外布局,然后里面包了几个布局,如果要使这几个布局都靠底,就可以在最外布局的属性里设置androi:gravity="botton" 因为gravity是对里面的内容起作用

RelativeLayout












原创粉丝点击