返回介绍

1. 谈谈 LinearLayout

发布于 2024-12-23 21:06:23 字数 1883 浏览 0 评论 0 收藏 0

Android 的常用布局里,LinearLayout 属于使用频率很高的布局。RelativeLayout 也是,但相比于 RelativeLayout 每个子控件都需要给上 ID 以供另一个相关控件摆放位置来说,LinearLayout 两个方向上的排列规则在明显垂直/水平排列情况下使用更加方便。

同时,出于性能上来说,一般而言功能越复杂的布局,性能也是越低的(不考虑嵌套的情况下)。相比于 RelativeLayout 无论如何都是两次测量的情况下,LinearLayout 只有子控件设置了 weight 属性时,才会有二次测量,其余情况都是一次。

另外,LinearLayout 的高级用法除了 weight,还有 divider,baselineAligned 等用法,虽然用的不常见就是了。

以下是 LinearLayout 相比于其他布局所拥有的特性:

属性值类型描述备注
orientationint作为 LinearLayout 必须使用的属性之一,支持纵向排布或者水平排布子控件 
weightSumfloat指定权重总和缺省值为 1.0
baselineAlignedboolean基线对齐 
baselineAlignedChildIndexint该 LinearLayout 下的 view 以某个 继承 TextView 的 View 的基线对齐 
measureWithLargestChildboolean当值为 true,所有带权重属性的 View 都会使用最大 View 的最小尺寸 
divider(需要配合 showDividers 使用)drawable in java/reference in xml如同您常在 ListView 使用一样,为 LinearLayout 添加分割线[api>11] 同时如果是自己建立的 drawable,请指定 size

【注意】divider 附加属性为 showDividers(middle|end|beginning|none):

  • middle 在每两项之间添加分割线
  • end 在整体的最后一项添加分割线
  • beginning 在整体的首项添加分割线
  • none 无

本篇主要针对 LinearLayout 垂直方向的测量、weight 和 divider 进行分析,其余属性因为比较冷门,因此不会详说


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文