Android Day01-布局详解

   在Android中布局分为线性布局、相对布局、帧布局、表格布局、网格布局、绝对布局,常用的是线性布局相对布局

   **布局本身也是一个组件(通过类的继承关系可以得知),布局文件中不管是什么组件包括布局本

     身要指定layout_width和layout_height属性。

   **布局上的属性是相互影响的,有着优先级。如weight,如果设置了布局的这个属性。组件的

    layout_width或layout_height就要设置为0. 

一、线性布局

   uorientation 属性是指定线性布局的排列方向:

                ühorizontal 水平(默认)

                       üvertical 垂直

    ugravity属性是指定当前控件内容显示位置

     üleft 左边

     üright 右边

     ütop 上边

     übottom 底边

   ulayout_gravity属性是指定当前控件在父元素的位置

     üleft 左边

     üright 右边

     ütop 上边

     übottom 底边

   ulayout_weightSum(权重)属性是把线性布局中剩余空间分成N.

   ulayout_weight (权重)属性是指定当前控件在父元素(线性布局)中占N份.

   uvisibility属性是控制布局是否显示: 

     üvisible 显示

     üinvisible 不显示但占空间

     ügone 隐藏


二、相对布局 

    位置、对齐

     //属性值为@id/控件id名   

     uandroid:layout_toRightOf  在指定控件的右边

    uandroid:layout_toLeftOf  在指定控件的左边

    uandroid:layout_above  在指定控件的上边

    uandroid:layout_below  在指定控件的下边


    uandroid:layout_alignBaseline  跟指定控件水平对齐

    uandroid:layout_alignLeft  跟指定控件左对齐

    uandroid:layout_alignRight  跟指定控件右对齐

    uandroid:layout_alignTop  跟指定控件顶部对齐

    uandroid:layout_alignBottom  跟指定控件底部对齐

     //属性值为true或者false

    uandroid:layout_alignParentLeft  是否跟父布局左对齐

    uandroid:layout_alignParentTop  是否跟父布局顶部对齐

    uandroid:layout_alignParentRight  是否跟父布局右对齐

    uandroid:layout_alignParentBottom  是否跟父布局底部对齐


    uandroid:layout_centerVertical  在父布局中垂直居中  

    uandroid:layout_centerHorizontal  在父布局中水平居中

    uandroid:layout_centerInParent  在父布局中居中





易于混淆的属性

        1.layout_marginXXX与layout_paddingXXX的区别

     padding是站在父view的角度描述问题,它规定它里面的内容必须与这个父view边界的距离。

     margin则是站在自己的角度描述问题,规定自己和其他(上下左右)的view之间的距离,如

   果同一级只有一个view,那么它的效果基本上就和padding一样。(网上经常有说margin是相对于

   父控件,这种说法其实是错误的。

     如下面的是垂直排列LinearLayout中的两个TextView控件,layout_margintop属性分别为50和

   100。因为是垂直排列,所以下面的那个TextView的top是相对于上一个控件的。效果图如下所示。

     wKiom1Wrc1rj03OqAAB6a5irIe4741.jpg

      如果将LinearLayout的方向改为水平排列的话,两个TextView的top都是相对于父窗体的。效

   果图如下:

     wKiom1WrdsCwGQE_AABPZfR7NpM202.jpg

     

   

     

    

    



你可能感兴趣的:(Android课程)