图3 LinearLayout竖向事例代码
那么为什么谷歌不设计一个可以同时从上到下,从左到右的布局控件?小白猜测真相是为了节约性能,毕竟早期的移动设备的性能确实无法与同时期的箱式电脑相比,而且Web流式布局需要消耗比较大的算力。如果猜测成真,那么LinearLayout无疑是有缺陷的,不然ConstraintLayout就不会存在了。
权重
对于LinearLayout一个很重要的概念是绕不过去的,那就是权重。权重简单来说就是比例,用于分配空间的比例,当然这个比例需要通过计算得出,而权重就是帮助计算比例的一个数值。但是权重还有设置和不设置的选择,所以此外还得考虑权重不设置以及LinearLayout内部控件大小溢出等情况,所以总的来说会比较复杂。
没有权重
小白在使用LinearLayout横向模式时,经常忽略一个事实是就是LinearLayout在横向模式下,是可以不用设置权重的。那么不设置权重,LinearLayout会什么样的表现呢? 首先小白先上一个正常设置了权重的的实例:
图4 正常有权重实例
在上面实例里,我们总共有三个元素:
-
固定尺寸的图书图标图片
-
带权重的书名文本
-
固定尺寸的功能性小图标