Android SDK 开发之基础布局对象
2010-03-23 04:01:00 来源:WEB开发网基础布局对象
本节介绍一些常用布局对象的种类. 就像所有的布局一样, 它们是ViewGroup的子类. 关于Android View布局的更多信息, 参见Hello Views教程.
FrameLayout 框布局
框布局是最简单的布局类型. 它基本就是屏幕上的一块空白区域, 你可以使用一个单独的对象例如图片等来填充它. 框布局的所有子元素都被"钉"在屏幕的左上角; 你无法为子view指定一个不同的位置. 后来的子view会简单的覆盖原先的, 除非后来的对象是透明的.
LinearLayout 线性布局
线性布局会按照一个单一的方向来对齐它所有的子元素 -- 从上到下或者从左到右. 所有的子元素依次排列, 因此一个竖直列表每行一个元素, 而水平列表每列一个元素. 一行的高度取决于最高的子元素, 再加上padding(补白). 线性布局考虑子元素之间的margin(间隔)以及gravity(重力)(分为左中右对齐).
线性布局还支持为每个独立的子元素分配一个weight(权重). 权重属性为一个view分配了一个"重要性"的值, 并允许它扩展并占据父view中的剩余空间. 子view可以指定一个整数权重值, 这样view group中的剩余空间按照权重来分配给所有的子view. 默认权重为0. 例如, 如果有三个文本框, 其中前两个有值为1的权重, 而第三个的权重为0. 那么第三个文本框将仅仅占据它需要的空间. 另两个会以相等的长度扩展并填充所有的剩余空间. 如果第三个文本框权重为2, 那么它就比另两个"更重要", 因此它会得到剩余空间的一半, 剩下的一般由前两个平分.
提示: 可以这样创建一个比例大小的布局: 创建一个view group容器, 将其layout_width 和 layout_height 设为fill_parent, 然后将子元素设为height或width设为0; 然后给每个子元素分配相对的权重.
下列两个窗口代表了一个LinearLayout, 该布局有一组元素: 一个按钮, 一些标签和文本框. 文本框的宽度设为fill_parent; 其它的元素设为wrap_content. gravity设为left. 这两个窗口的去吧是左边的weight未设置. 而右边的将comments下方的文本框的weight设为1. 如果Name文本框也设为weight为1, 那么两个文本框会有相同的高度.
在一个水平线性布局中, 每一项是按照它们的文字基线来对齐的(第一行第一个元素被认为是参考线). 这样设计是为了避免用户在表格中查看时视线跳动.
更多精彩
赞助商链接