横向 & 竖向
LinearLayout最基本的用法类似于Web中流式布局中最基础的形式,就是从上到下,从左到右。但是LinearLayout无法做到同时从上到下,从左到右,我们只能二选一,这就是LInearLayout的横向或者竖向的选择,由LinearLayout的orientation属性控制, 如图1所示:
图 1. LinearLayout的横向和竖向设置
在上面的例子中,我们可以看到两个主要元素: 图片和书名,那么在横向时候,我们怎么做呢?首先需要将LinearLayout的orientation设置为horizontal即从左到右,然后在LinearLayout中丢一个ImageView和TextView用于显示图片和书名如图2所示:
图2 LinearLayout横向事例代码
而要想LinearLayout从上到下显示,可以将orientation设置为vertical,那么上面的事例就可以变成图3所示:
图3 LinearLayout竖向事例代码
那么为什么谷歌不设计一个可以同时从上到下,从左到右的布局控件?小白猜测真相是为了节约性能,毕竟早期的移动设备的性能确实无法与同时期的箱式电脑相比,而且Web流式布局需要消耗比较大的算力。如果猜测成真,那么LinearLayout无疑是有缺陷的,不然ConstraintLayout就不会存在了。
权重
对于LinearLayout一个很重要的概念是绕不过去的,那就是权重。权重简单来说就是比例,用于分配空间的比例,当然这个比例需要通过计算得出,而权重就是帮助计算比例的一个数值。但是权重还有设置和不设置的选择,所以此外还得考虑权重不设置以及LinearLayout内部控件大小溢出等情况,所以总的来说会比较复杂。
没有权重
小白在使用LinearLayout横向模式时,经常忽略一个事实是就是LinearLayout在横向模式下,是可以不用设置权重的。那么不设置权重,LinearLayout会什么样的表现呢? 首先小白先上一个正常设置了权重的的实例:
图4 正常有权重实例
在上面实例里,我们总共有三个元素:
-
固定尺寸的图书图标图片
-
带权重的书名文本
-
固定尺寸的功能性小图标
那么如果我们去掉LinearLayout所有子元素的layout_weight即去除权重,并且给子元素赋予有效的宽度值。例如把书名文本的layout_weight去掉,并且将它的layout_width设置为wrap_content, 那么最后的效果就如下图所示:
图5 无权重实例
如上图所示,如果去掉权重,那么LinearLayout不会计算控件空间比率,而是顺序根据子控件的空间大小以次显示。如果没有多余的空间显示下控件的任何一部分,即使压缩控件的空间也不能达到显示的目的,将不会显示。
有无权重搭配
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
文末
很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习,对此我整理了一些资料,需要的可以免费分享给大家
这里笔者分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。
【视频教程】
天道酬勤,只要你想,大厂offer并不是遥不可及!希望本篇文章能为你带来帮助,如果有问题,请在评论区留言。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!**