详解Android四种基本布局
LinearLayout
LinearLayout又称作线性布局,是一种非常常用的布局。
该布局有一个专属属性android:orientation,这个属性有两个选择vertical和horizontal,代表着线性排列的规律。
演示:
vertical
horizonal
如果LinearLayout 的排列方向是 horizontal,内部的控件就绝对不能将宽度指定为match_parent,因为这样的话单独一个控件就会将整个水平方向占满,其他的控件就没有可放置的位置了。同样的道理,如果LinearLayout 的排列方向是 vertical,内部的控件就不能将高度指定为match_parent。
gravity和layout_gravity的区别就是gravity是指当前空间内部的内容的排列方式,而后者则是指当前控件相对于父布局的的排列方式
示例:
android:layout_weight是指所设置的控件对剩余空间的权重(权重越大,所占空间越大)
示例:
注意这里我们将edittext的权重设为1,而width设为0只是一个规范化写法,因为send的width是wrapcontent,所以这一行的剩余空间分到所有权重之和(1)上,1/1即为edittext所占比例。
RelativeLayout
RelativeLayout 又称作相对布局,也是一种非常常用的布局。
就和名字一样,这种布局内的控件排列全部按照相对的父布局或其它子控件等
相对于父布局:
相对于子控件:
RelativeLayout中还有另外一组相对于控件进行定位的属性,android:layout_alignLeft表示让一个控件的左边缘和另一个控件的左边缘对齐,android:layout_alignRight表示让一个控件的右边缘和另一个控件的右边缘对齐,还有android:layout_alignTop android:layout_
alignBottom
FrameLayout
这种布局没有任何的定位方式,所有的控件都会摆放在布局的左上角,该布局类型主要运用于碎片处理。
TableLayout TableLayout允许我们使用表格的方式来排列控件 设计一个登录界面,允许用户输入账号密码后登录
在TableLayout 中每加入一个 TableRow 就表示在表格中添加了一行,然后在 TableRow中每加入一个控件,就表示在该行中加入了一列,TableRow中的控件是不能指定宽度的。
使用android:layout_span="2"让登录按钮占据两列的空间,android:stretchColumns="1"使得第二个控件自动拉伸并占慢剩余空间。
更多相关文章
- 安卓第一课
- android ListView中给Item的每个控件设置单击事件
- 【3】Android新建Activity (Eclipse)
- Android(安卓)Studio自带模版:抽屉(DrawerLayout)布局
- 纯Java代码写登录注册页面
- 类 QQ登入界面的 布局,防登入按钮被覆盖
- Android(安卓)Random随机数
- 自定义的跑马灯控件
- Android(安卓)之 布局训练