android中共有5中布局,GridLayout(网格布局又叫TableLayout,TableLayout是android3.0的布局格式),FrameLayout(帧布局),LinearLayout(线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局)。
每一个布局文件都对应一个Android中的类。可以说每个布局都是类来产生的。LinearLayout对应的是android.widget.LinearLayou类;GridLayout布局 对应的是android.widget.GridLayoutt类;FrameLayout布局对应的是android.widget.FrameLayout类;AbsoluteLayout对应的是android.widget.AbsoluteLayout类;RelativeLayout布局对应的Java类是android.widget.RelativeLayout类。
安卓提供了两种布局的方式,
方式一、通过布局文件xml,声明UI控件。
方式二:可通过编程的方式在Java代码中创建View和ViewGroup的对象。
在android中提供了方便的可视化视图来设计UI布局。
GridLayout(TableLayout)网格布局:GridLayout网格布局是在android4.0版本之后引入的,之前都是TableLayout表格布局。所以在使用GridLayout要注意sdk的最小版本。它的布局可分为水平和垂直,android:orientation="horizontal":表示水平布局;垂直为vertical。android:columnCount="1":设置总共有多少列,android:rowCount=""设置总共有多少行。在GridLayout 布局内的空间的属性中添加android:layout_row="0"属性,指定控件在哪一行,android:layout_column="",设定控件在哪一列。android:layout_rowSpan和android:layout_column Span是跨行和跨列的属性。
FrameLayout帧布局:每一个控件都像一个图层,会是层级叠加如果不对其进行样式控制的话。
AbsoluteLayout绝对布局,使用的较少,因为手机的分别率不同,程序也要适应不同的分辨率,如果使用AbsoluteLayout布局在小屏幕手机上的可以使用,但是在大屏幕的手机上就会空出大片的空白。
LinearLayou线性布局:分为两种,一个是垂直线性,另一个是水平线性。使用垂直时,控件的android:layout_gravity="center_vertical"属性是不起作用的,同样水平时,android:layout_gravity="center_horizontal"同样不起作用。因为,线性布局是不会自动换行的。超出屏幕的部分是不显示的。
RelativeLayout相对布局:是指一个控件在另一个控件的相对位置,在使用这个布局是两个控件,不能相互引用,比如,A控件中的属性A在B控件的右边,就不能再在B控件中声明B控件在A的左边,否则会出现错误(和死循环是一个道理)。通常声明一个控件的时候会指出此控件在另一个控件或父控件的相对位置。如果不指定控件的相对位置,都会默认在左上角。
来源:oschina
链接:https://my.oschina.net/u/4313521/blog/4317816