小白7码-android原生开发皮毛系列(6)-LinearLayout线性布局

横向 & 竖向

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 正常有权重实例

在上面实例里,我们总共有三个元素:

  1. 固定尺寸的图书图标图片

  2. 带权重的书名文本

  3. 固定尺寸的功能性小图标

那么如果我们去掉LinearLayout所有子元素的layout_weight即去除权重,并且给子元素赋予有效的宽度值。例如把书名文本的layout_weight去掉,并且将它的layout_width设置为wrap_content, 那么最后的效果就如下图所示:

图5 无权重实例

如上图所示,如果去掉权重,那么LinearLayout不会计算控件空间比率,而是顺序根据子控件的空间大小以次显示。如果没有多余的空间显示下控件的任何一部分,即使压缩控件的空间也不能达到显示的目的,将不会显示。

有无权重搭配

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

文末

很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习,对此我整理了一些资料,需要的可以免费分享给大家

这里笔者分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

【视频教程】

天道酬勤,只要你想,大厂offer并不是遥不可及!希望本篇文章能为你带来帮助,如果有问题,请在评论区留言。

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!**

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值