android的窗口部件容器
时间:2010-10-13 来源:fly123456789
容器(container)用于承载窗口部件或者子容器的。比如布局多个窗口部件,一个表单,左边是文本标签,右边是文本框,就需要用到容器。
很多GUI工具集中都有布局管理的概念。比如java swing中的BoxLayout布局管理器。android通过LinearLayout提供一个类似的布局。
android常用的布局管理有:
LinearLayout
RelativeLayout
TableLayout
另外,如果使用ScrollView容器,可以实现滚屏。
LinearLayout
线性的布局,即所谓的箱子模型(box model)。窗口部件或者子容器线性排列,或者是一行,或者是一列。类似于java swing的FlowLayout,或者flex和mozilla的xul中的hbox和vbox。
概念和属性:
方向(orientation):在布局文件中设置android:orientation属性,设置为横向或者纵向(horizontal|vertical),或者在运行时通过java代码调用LinearLayout的setOrientation()方法
fill model:android:layout_width和android:layout_height, 可以设置像素、wrap_content(换行)或者fill_parent,后两种比较常用
权重(weight):两个窗口部件如何分配布局的剩余空间,可以设置该窗口部件权重属性,android:layout_weight,比如两个窗口部件,都设置该属性为1,则平分剩余空间
重心(gravity):默认情况下,所有部件的布局是从左到右,自上而下,可以设置布局属性(而不是窗口部件属性)android:gravity
padding:窗口部件间有默认的间距,也可定制它们之间的空白大小,可通过布局节点的android:padding属性设置,或者在java代码中调用setPadding() ,另外,也有android:paddingxxx属性设置上下左右等的间距
RelativeLayout
窗口小部件的布局是相关联的,比如可定义一个窗口部件在另一个窗口部件的右下方等。
概念和属性
和容器之间的位置属性:
android:layout_alignParentTop
android:layout_alignParentBottom
android:layout_alignParentLeft
android:layout_alignParentRight
android:layout_centerHorizontal
android:layout_centerVertical
android:layout_centerInParent
以上属性值是布尔型的。
在属性中使用位置关系的注解:
每个窗口部件要有android:id属性,便于被引用
引用方式是直接使用该窗口部件的android:id值
窗口部件之间的位置属性:
android:layout_above
android:layout_below
android:layout_toLeftOf
android:layout_toRightOf
窗口组件之间的排列属性:
android:layout_alignTop
android:layout_alignBottom
android:layout_alignLeft
android:layout_alignRight
android:layout_alignBaseline
TableLayout
类似html中的table的布局。
使用TableLayout可以将窗口部件定位到指定的网格中。
需要设置网格的行数和列数。
在TableLayout元素中使用TableRow定义行,可以通过TableRow的android:layout_span属性设置窗口部件跨越的列数。
ScrollView
使用ScrollView作为上级节点,在其中使用布局,则得到可滚动的界面。
很多GUI工具集中都有布局管理的概念。比如java swing中的BoxLayout布局管理器。android通过LinearLayout提供一个类似的布局。
android常用的布局管理有:
LinearLayout
RelativeLayout
TableLayout
另外,如果使用ScrollView容器,可以实现滚屏。
LinearLayout
线性的布局,即所谓的箱子模型(box model)。窗口部件或者子容器线性排列,或者是一行,或者是一列。类似于java swing的FlowLayout,或者flex和mozilla的xul中的hbox和vbox。
概念和属性:
方向(orientation):在布局文件中设置android:orientation属性,设置为横向或者纵向(horizontal|vertical),或者在运行时通过java代码调用LinearLayout的setOrientation()方法
fill model:android:layout_width和android:layout_height, 可以设置像素、wrap_content(换行)或者fill_parent,后两种比较常用
权重(weight):两个窗口部件如何分配布局的剩余空间,可以设置该窗口部件权重属性,android:layout_weight,比如两个窗口部件,都设置该属性为1,则平分剩余空间
重心(gravity):默认情况下,所有部件的布局是从左到右,自上而下,可以设置布局属性(而不是窗口部件属性)android:gravity
padding:窗口部件间有默认的间距,也可定制它们之间的空白大小,可通过布局节点的android:padding属性设置,或者在java代码中调用setPadding() ,另外,也有android:paddingxxx属性设置上下左右等的间距
RelativeLayout
窗口小部件的布局是相关联的,比如可定义一个窗口部件在另一个窗口部件的右下方等。
概念和属性
和容器之间的位置属性:
android:layout_alignParentTop
android:layout_alignParentBottom
android:layout_alignParentLeft
android:layout_alignParentRight
android:layout_centerHorizontal
android:layout_centerVertical
android:layout_centerInParent
以上属性值是布尔型的。
在属性中使用位置关系的注解:
每个窗口部件要有android:id属性,便于被引用
引用方式是直接使用该窗口部件的android:id值
窗口部件之间的位置属性:
android:layout_above
android:layout_below
android:layout_toLeftOf
android:layout_toRightOf
窗口组件之间的排列属性:
android:layout_alignTop
android:layout_alignBottom
android:layout_alignLeft
android:layout_alignRight
android:layout_alignBaseline
TableLayout
类似html中的table的布局。
使用TableLayout可以将窗口部件定位到指定的网格中。
需要设置网格的行数和列数。
在TableLayout元素中使用TableRow定义行,可以通过TableRow的android:layout_span属性设置窗口部件跨越的列数。
ScrollView
使用ScrollView作为上级节点,在其中使用布局,则得到可滚动的界面。
相关阅读 更多 +