1.相对布局RelativieLayout
①.相对布局的基本概念
一个控件的位置决定于和周围控件位置的相对关系,能创造更加复杂的布局,更灵活②.相对布局与其它布局的区别
位置依赖于其它控件的位置,比如一个控件在一个控件的上面,或者底部,或者与父控件的右边缘对齐等等
③.相对布局常用属性介绍
android:layout_above 将该控件的底部置于给定id的控件之上
android:layout_below 将该控件的顶部置于给定id的控件之下
android:layout_toLeftOf 将该控件的右边缘和给定id的控件的左边缘对齐
android:layout_toRightOf 将该控件的左边缘和给定id的控件的右边缘对齐
android:layout_alignBaseline 将该控件的baseline和给定id的控件的baseline对齐
android:layout_alignBottom 将该控件的底部边缘与给定id的控件的底部边缘对齐
android:layout_alignLeft 将该控件的左边缘和给定id的控件的左边缘对齐
android:layout_alignRight 将该控件的右边缘和给定id的控件的右边缘对齐
android:layout_alignTop 将该控件的顶部边缘和给定id的控件的顶部边缘对齐
android:layout_alignParentBottom如果该值为true,则将该控件的底部边缘和父控件的底部边缘对齐
android:layout_alignParentLeft 如果该值为true,则将该控件的左边缘和父控件的左边缘对齐
android:layout_alignParentRight 如果该值为true,则将该控件的右边缘和父控件的右边缘对齐
android:layout_alignParentTop 如果该值为true,则将该控件的顶部边缘和父控件的顶部边缘对齐
android:layout_centerHorizontal 如果该值为true,该控件将被置于水平方向的中央
android:layout_centerInParent 如果该值为true,该控件将被置于父控件水平方向的中央
android:layout_centerVertical 如果该值为true,该控件将被置于垂直方向的中央
2.线性布局LinearLayout
线性布局就是将各种控件按照行或者列依次进行排列。
其中本实验用到的各控件的属性解释如下:
android:layout_weight属性是指不同的控件在activity中占有体积大小的比例。
android:paddingLeft指内边距左的距离,即控件内文字离控件左边边界的距离。其它的类推。
android:gravity指控件内文字相对于控件本身的方向属性,长度为dip,与像素独立的长度。
android:background为控件内文字颜色的背景色,颜色采用rgb时前面需用”#”号.
android:textSize为文本的大小,单位为pt,即镑。
android:id为该控件的id,即在此处可以设置控件的id。
android:layout_width为控件本身的宽度属性,其它的类似。
android:orientation="vertical"垂直线性布局,"horizontal"水平线性布局
android:gravity="top"(buttom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical、clip_horizontal)控制布局中控件的对齐方式。如果是没有子控件的控件设置此属性,表示其内容的对齐方式,比如说TextView里面文字的对齐方式;若是有子控件的控件设置此属性,则表示其子控件的对齐方式,gravity如果需要设置多个属性值,需要使用“|”进行组合
android:gravity 与 android:layout_gravity的区别
android:gravity是指定本元素的子元素相对它的对齐方式。
android:layout_gravity是指定本元素相对它的父元素的对齐方式。
android:layout_weight="1"通过设置控件的layout_weight属性以控制各个控件在布局中的相对大小,线性布局会根据该控件layout_weight值与其所处布局中所有控件layout_weight值之和的比值为该控件分配占用的区域。在水平布局的LinearLayout中有两个Button,这两个Button的layout_weight属性值都为1,那么这两个按钮都会被拉伸到整个屏幕宽度的一半。如果layout_weight指为0,控件会按原大小显示,不会被拉伸;对于其余layout_weight属性值大于0的控件,系统将会减去layout_weight属性值为0的控件的宽度或者高度,再用剩余的宽度或高度按相应的比例来分配每一个控件显示的宽度或高度。
3.帧布局FrameLayout
帧布局的标签FrameLayout,FrameLayout继承了ViewGroup。
帧布局没创建一帧(每创建一个组件),每个子组件占据一帧,这些帧都会根据gravity属性执行自动对齐。
4.网格布局GridLayout
常用属性:
排列对齐:
①设置组件的排列方式: android:orientation="" vertical(竖直,默认)或者horizontal(水平)
②设置组件的对齐方式: android:layout_gravity="" center,left,right,buttom啊,这些,如果想同时用两种的话:eg: buttom|left
设置布局为几行几列:
①设置有多少行:android:rowCount="4" //设置网格布局有4行
②设置有多少列:android:columnCount="4" //设置网格布局有4列
设置某个组件位于几行几列
注:都是从0开始算的哦!
①组件在第几行:android:layout_row = "1" //设置组件位于第二行
②组件在第几列:android:layout_column = "2" //设置该组件位于第三列
设置某个组件横跨几行几列:
①横跨几行:android:layout_rowSpan = "2" //纵向横跨2行
②横跨几列:android:layout_columnSpan = "3" //横向横跨2列
5.表格布局 TableLayout
表格布局和网格布局类似,但是需要注意的是,表格布局不能跨行,只能跨列
属性:android:collapseColumns:将TableLayout里面指定的列隐藏,若有多列需要隐藏,请用逗号将需要隐藏的列序号隔开。
android:stretchColumns:设置指定的列为可伸展的列,以填满剩下的多余空白空间,若有多列需要设置为可伸展,请用逗号将需要伸展的列序号隔开。
android:shrinkColumns:设置指定的列为可收缩的列。当可收缩的列太宽(内容过多)不会被挤出屏幕。当需要设置多列为可收缩时,将列序号用逗号隔开。
列元素(Button)属性:(奇怪的是button 里面没有android:layout_column 和android:layout_span两个属性,写进去无反应,还不知道为什么)
android:layout_colum:设置该控件在TableRow中指定的列。
android:layout_span:设置该控件所跨越的列数。