zoukankan      html  css  js  c++  java
  • Android学习之Layout

      Layout就是布局管理器,所有的布局管理器的基类都是ViewGroup类。
      ViewGroup的各种set方法对应着Layout的XML属性,即在XML布局文件中定义layout的属性;而ViewGroup还有两个内部类,是用来控制放在该布局管理器中的组件的,对应着XML布局文件中定义在layout里面的各种组件(Button、TextView等)。
    1、LinearLayout
     
    LinearLayout支持的常用XML属性
    (1)baselineAligned
    (2)divider
    (3)gravity
    (4)orientation

    其子元素支持的常用XML属性
    (1)layout_gravity
    (2)layout_weight


    注意:有些XML属性名前有layout_,而有些没有,就比如layout_width和width的区别,一个组件有实际的大小,所以layout_width的值是fill_parent、wrap_parent和wrap_content但也有布局的方式,当布局的方式不同时,即使是大小相同的两个组件也有不一样的大小效果。另关于gravity和layout_gravity的区别可以参阅http://blog.csdn.net/dekunchenivan/article/details/6718678?reload

    2、TableLayout
     
    TableLayout支持的常用XML属性
    (1)collapseColumns
    (2)shrinkColumns
    (3)stretchColumns
     

    3、FrameLayout

     
    FrameLayout支持的常用XML属性
    (1)foreground
    (2)foregroundGravity
     
    4、RelativeLayout


    RelativeLayout支持的常用XML属性
    (1)gravity
    (2)ignoreGravity



    其子元素支持的常用XML属性
    (1)layout_centerHorizontal
    (2)layout_centerVertical
    (3)layout_centerInParent
    (4)layout_alignParentBottom
    (5)layout_alignParentTop
    (6)layout_alignParentLeft
    (7)layout_alignParentRight
    (8)layout_toLeftOf
    (9)layout_toRightOf
    (10)layout_above
    (11)layout_below
    (12)layout_alignTop
    (13)layout_alignBottom
    (14)layout_alignRight
    (15)layout_alignLeft



    5、GridLayout(Android 4.0 新增的)



    RelativeLayout支持的常用XML属性
    (1)alignmentMode
    (2)columnCount
    (3)rowCount
    (4)columnOrderPreserved
    (5)rowOrderPreserved
    (6)useDefaultMargins




    其子元素支持的常用XML属性
    (1)layout_column
    (2)layout_row
    (3)layout_columnSpan
    (4)layout_rowSpan
    (5)layout_gravity

    注意:并不是所有的属性都可以通过set方法设置的,例如

    (1)layout_column
    (2)layout_row
    (3)layout_columnSpan
    (4)layout_rowSpan
    这四个属性就不可以。
    要这样:
    GridLayout.Spec rowSpec = new GridLayout.Spec(3);
    GridLayout.Spec columnSpec = new GridLayout.Spec(4);
    GridLayout.LayoutParams params = new GridLayout.LayoutParams(rowSpec,columnSpec);
    gridLayout.addView(btn,params);   //gridLayout和btn都已定义过
  • 相关阅读:
    SDUST OJ 时间类的加、减法赋值运算
    POJ 2823 (滑动窗口)
    POJ 2229 计数DP
    POJ 1995 (快速幂)
    poj 3009 (深搜求最短路)
    C++ 学习笔记之 STL 队列
    C++ 学习笔记之 引用
    Anaconda3使用
    Ubuntu 18.04安装Conda、Jupyter Notebook、Anaconda
    Ubuntu 18.04安装 pyenv、pyenv-virtualenv、virtualenv、Numpy、SciPy、Pillow、Matplotlib
  • 原文地址:https://www.cnblogs.com/tangjuanj/p/3579341.html
Copyright © 2011-2022 走看看