Android界面布局
1:LinearLayout : 线性布局方式每个元素占一行或者一列.
LinearLayout是最简单也是最常用的一种布局方式,它根据orientation 属性值,将包含的所有控件或布局对象排列在同一个方向:水平或垂直,在这种布局中,所有的控件都是依序排列成一条线。在线性布局中的控件允许有自己的margins和gravity属性。
LinearLayout.LayoutParams用来定义针LinearLayout布局的专用属性,它包括以下内容:
1)android:layout_weight用于在LinearLayout中把所有子View排布之后的剩余空间按照它们的layout_weight分配给各个拥有这个属性的View。
2)android:layout_gravity用于设置组件自身在父组件中的对齐方式。
padding:组件内容相对组件的边缘的距离。因此,它仍属于组件的区域范围。如果为组件设置背景,背景将会覆盖此区域。
margin:组件边缘相对其他组件边缘的距离,即组件之间的距离。
android:layout_gravity用于设置组件自身在父组件中的对齐方式。需要注意的是,此属性与布局属性android: gravity的区别。android:gravity用于设置View组件的对齐方式。
android:gravity="center"来让EditText中的文字在EditText组件中居中显示;
同时设置EditText的android:layout_gravity="right"来让EditText组件在LinearLayout中靠右显示。
2:RelativeLayout :相对定位的布局方式,相对位置相对其他元素或者相对布局.
RelativeLayout的子控件会根据它们所设置的参照控件和参数进行相对布局。参照控件可以是父控件,也可以是其它子控件。
针对父控件的布局属性,如下所示。
android:layout_alignParentTop:为true,将该控件的顶部与其父控件的顶部对齐;
android:layout_alignParentBottom :为true,将该控件的底部与其父控件的底部对齐;
android:layout_alignParentLeft:为true,将该控件的左部与其父控件的左部对齐;
android:layout_alignParentRight:为true,将该控件的右部与其父控件的右部对齐;
android:layout_centerHorizontal: 为true,将该控件的置于水平居中;
android:layout_centerVertical: 为true,将该控件的置于垂直居中;
android:layout_centerInParent: 为true,将该控件的置于父控件的中央;
针对其它控件的属性,如下所示。
android:layout_above: 将该控件的底部置于指定ID的控件之上;
android:layout_below :将该控件的底部置于指定ID的控件之下;
android:layout_toLeftOf:将该控件的右边缘与指定ID的控件左边缘对齐;
android:layout_toRightOf: 将该控件的左边缘与指定ID的控件右边缘对齐;
android:layout_alignBaseline: 将该控件的baseline与指定ID的baseline对齐;
android:layout_alignTop: 将该控件的顶部边缘与指定ID的顶部边缘对齐;
android:layout_alignBottom: 将该控件的底部边缘与指定ID的底部边缘对齐;
android:layout_alignLeft: 将该控件的左边缘与指定ID的左边缘对齐;
android:layout_alignRight:将该控件的右边缘与指定ID的右边缘对齐;
注意,不能在RelativeLayout容器本身和它的子元素之间产生循环依赖,比如说,不能将RelativeLayout的高设置成为WRAP_CONTENT的时候将子元素的高设置成为ALIGN_PARENT_BOTTOM。
3:TableLayout: 表格的布局方式.
TableLayout以行列的形式管理子控件,每一行为一个TableRow对象,当然也可以是一个View的对象。TableRow可以添加子控件,每添加一个为一列。
TableLayout特有的布局属性如下:
android:layout_colum:设置该控件在TableRow中所处的列。
android:layout_span:设置该控件所跨越的列数
android:collapseColumns:将TableLayout里面指定的列隐藏,若有多列需要隐藏,则用逗号将需要隐藏的列序号隔开
android:stretchColumn:设置指定的列为可伸展的列,可伸展的列会尽量伸展以填满所有可用的空间,若有多列需要设置为可伸展,则用逗号将需要伸展的列序号隔开。
android:shrinkColumns:设置指定的列为可收缩的列。当可收缩的列太宽以至于让其他列显示不全时,会纵向延伸空间。当需要设置多列为可收缩时,则将列序号用逗号隔开。
注意:TableLayout中的column的编号是从0开始的。
4:GridLayout: 网格的布局方式.
GridLayout布局使用虚细线将布局划分为行、列和单元格,也支持一个控件在行、列上都有交错排列(跨行、跨列)。
5:ScrollView: 滚动视图.
ScrollView也是一种常见的Layout,可以让它内部的数据显示不下的时候出现垂直滚动条,要注意的是不能ScrollView中放多个组件
HorizontalScrollView水平滚动类,它除了滚动方向外,跟ScrollView很相似
6:FrameLayout: 帧布局方式,内部的元素,是一层一层的叠加在一起.
FrameLayout是最简单的布局形式。
所有添加到这个布局中的视图都以层叠的方式显示。
第一个添加的控件被放在最底层,最后一个添加到FrameLayout中的视图显示在最顶层,上一层的控件会覆盖下一层的控件。
这种显示方式有些类似于堆栈。