一.布局的基本概念
布局就是主要把界面中的控件按照某种规律摆放在指定的位置;主要是为了解决应用程序在不同手机中的显示问题
1. Android实现布局有俩种方式:
(1)代码:布局文件对应的Java类都是viewgroup类的子类
(2)xml配置文件:所有的布局文件都是放在res/layout文件夹中
布局支持嵌套
2.布局的一些基本属性
(1)android:layout_width
1>设置控件所占的宽度
2>取值范围:wrap_content,fill_parent,match_parent
固定值:dp,dip,sp,pt,mm,in,px
(2)android:layout_height
1>设置控件所占的高度
2>取值范围同上
(3)android:layout_gravity
1>当前控件在父视图的位置
2>取值范围:top| bottm | left | right(上下左右);center_veritcal(水平居中)| center_horizontal(垂直居中)| center(居中)
fill_veritcal(若有可能,纵向拉伸以填满容器);fill_horizontal(横向拉伸以填满容器);fill (纵向横向同时拉伸以填满容器)
(4)android:layout_marginTop
1>当前视图边缘到某条基线的距离
2>只能取固定的值
(5)android:layout_marginButtom
1>当前视图下边缘到某条基线的距离
2>只能取固定值
二.Android的布局
1.LinearLayout(线性布局)
1>线性布局将其中的控件一个接一个排列,可以横排也可以竖排
2>常用属性:
设置排列方向:
xml属性:android:orientation="horizontal(水平排列)或者 vertical(垂直排列)"
方法:setPrientation(int)
设置组件的对齐方式:
xml属性:android:gravity
方法:setGravity(int)
小总结:android:layout_gravity和android_gravity的区别?
android:gravity:这个是针对控件里的元素来说的,用来控制元素在该控件里显示位置
android:layout_fravity:这个是针对控件本身而言,用来控制该控件在包含该控件的父控件中的位置
特殊情况:当android:orientation="vertical"时;android:layout_gravity只有水平方向的设置才能起作用,垂直方向的设置不起作用;即:left,right,center_horizontal是生效的
当android:orientation=“horizontal”时;android:layout_gravity只有垂直方向的设置才起作用,水平方向的设置不起作用;即top,bottom,center_vertical是生效的
2.FrameLayout(帧布局)
1>类似于ps中图片的概念
2>位每个加入其中的组件创建单独的帧
3>看上去像组件叠加到一起
3.TableLayout(表格布局)
1>表格布局可将视图按行,列进行排列
2>直接向TableLayout中添加控件,则这个控件将占一行
3>一个表格布局由一个
4>常用属性:
某列被收缩(以保证表格完全填充父容器的宽度):android:shrinkColumns
某列被拉伸(以保证表格能完全填充父容器的宽度):android:stretchColumns
某列被隐藏:android:collapseColumns
表格跨列:android:layout_span="3"
4.AbsoluteLayout(绝对布局)
1>自己制定控件的坐标
2>每个控件有layout_x和layout_y属性
不推荐使用,因为屏幕太大变化,其位置也会变化
今天就写到这里;RelativeLayout(相对布局)我会在下一篇写。