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都已定义过
posted @ 2014-03-03 22:10  小Garfield  阅读(203)  评论(0编辑  收藏  举报