android 高度上分权重,Android LinearLayout weight权重使用

在日常的开发过程中,我们通常或多或少会使用到LinearLayout的weight属性来进行权重设置,进而达到按比例显示布局的意图

通常我们在使用时,会这样使用

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="horizontal">

android:layout_width="0dp"

android:layout_height="match_parent"

android:layout_weight="2"

android:background="@android:color/holo_blue_light" />

android:layout_width="0dp"

android:layout_height="match_parent"

android:layout_weight="1"

android:background="@android:color/holo_red_light" />

android:layout_width="0dp"

android:layout_height="match_parent"

android:layout_weight="1"

android:background="@android:color/holo_green_light" />

058b67b2d268?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

权重示例.png

我们一般使用weight属性时,会将width或者height设置为0dp,这时控件的宽或者高就会按照我们设置的权重,如上面的2:1:1来填充父控件

但是,如果子控件的宽度或高度不设置成0dp,那么他们的宽高是怎么分配的呢?

我们首先明确一点:weight权重是针对于LinearLayout的剩余空间,所以我们在设置该属性之后,LinearLayout会计算自己的剩余空间,然后将剩余空间按权重分配到子控件上。

以横向布局为例:

LinearLayout的剩余空间 = LinearLayout的宽度 - 各个子控件的宽度,可以有负值

以2个子控件为例,权重分别为2和1

那么

子控件1的宽度 = 子控件1的初始宽度 +(2/3)* LinearLayout的剩余空间

子控件2的宽度 = 子控件2的初始宽度 +(1/3)* LinearLayout的剩余空间

我们来验证一下:

为方便测量,使用px单位, 我们先设定父控件宽 = 800px, 子控件1 = 200px 子控件2 = 100px,weight都为1,我们自己先算一下,可以得出:

LinearLayout的剩余空间 = 800 - 200 - 100 = 500

子控件1宽度 = 200 + (1/2) * 500 = 450

子控件2宽度 = 100 + (1/2) * 500 = 350

看下效果是否和我们计算的一致:

android:layout_width="800px"

android:layout_height="match_parent"

android:orientation="horizontal">

android:layout_width="300px"

android:layout_height="match_parent"

android:layout_weight="1"

android:background="@android:color/holo_blue_light" />

android:layout_width="100px"

android:layout_height="match_parent"

android:layout_weight="1"

android:background="@android:color/holo_red_light"

android:singleLine="true" />

058b67b2d268?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

权重示例1.png

和我们预期的一致

我们再检测下"match_parent"的情况:

设定父控件宽 = 600px, 子控件1 ="match_parent" weight = "1" 子控件2 = "match_parent" weight = "2",我们自己先算一下,可以得出:

LinearLayout的剩余空间 = 600- 600- 600= -600

子控件1宽度 = 600+ (1 / 3) * (-600)= 400

子控件2宽度 = 600+ (2 / 3) * (-600)= 200

看下效果是否和我们计算的一致:

android:layout_width="600px"

android:layout_height="match_parent"

android:orientation="horizontal">

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_weight="1"

android:background="@android:color/holo_blue_light" />

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_weight="2"

android:background="@android:color/holo_red_light"

android:singleLine="true" />

058b67b2d268?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

权重示例2.png

和我们计算的完全一致

子控件"wrap_content"与确定值计算方式同上,有空的可以验证下

另外需要注意一点:weight是float类型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514418.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实时计算pv/uv Demo

简介: 本文由阿里巴巴高级技术专家邓小勇(静行)分享,主要用 Demo 演示如何通过实时计算 Flink 实时计算pv/uv的场景。 本文由阿里巴巴高级技术专家邓小勇(静行)分享,主要用 Demo 演示如何通过实…

《天际友盟DRP数字风险防护报告(2021年上半年)》重磅发布

今天,数字化正在发生,整个社会正在步入数字化革新。根据市场研究公司IDC的预测,到2023年超过50%的全球经济将由数字经济所驱动。在中国,2021-2024数字化转型总支出将达到1.5万亿美元,年均增长率超过17%。由此可见&…

Android Native crash 处理案例分享

简介: Android Native crash 处理案例分享 1. 背景 目前 mPaas[1] Android使用Crash SDK对闪退进行的处理,CrashSDK 是 Android 平台上一款功能强大的崩溃日志收集 SDK,有着极高的崩溃收集率和完整、全面的崩溃日志信息,生成的日…

Mendix:低代码与无代码的异同点与用例

投稿 | Mendix 编辑 | 宋 慧 头图 | 付费下载于 IC photo 低代码和无代码应用开发都遵循着代码抽象化原则来实现建模的可视化。但基于这两种方法构建的应用在规模和类型却有着根本性的区别。 低代码与无代码的相同之处 低代码和无代码开发平台都无需编写代码就能构建软件应用…

解读:云原生下的可观察性发展方向

简介: 非常有幸参加了云原生社区Meetup北京站,有机会和众多业内的大牛一起讨论云原生相关的技术和应用,本次Meetup上我和大家分享了关于云原生下的可观察性相关的议题,本篇文章主要是视频的文字性总结,欢迎大家留言讨论…

一文读懂 Serverless,将配置化思想复用到平台系统中

简介: 搭建一个 aPaaS 平台是需要很长时间的,当然也可以基于一些公有云产品的 Serverless 方案实现现有系统的灵活性与扩展性,从而实现针对于不同客户的定制。 写在前面 在 SaaS 领域 Salesforce 是佼佼者,其 CRM 的概念已经扩展…

9.9 元福利价,解锁校园满分计划

移动云开发者社区致力于为广大开发者提供技术交流和能力输出,是移动云开发者交流汇聚地、移动云产品首席体验官工作台、移动云技术能力布道者讲台和移动云能力输出窗口。通过移动云开发者社区,在帮助移动云开发者用好云、好用云的同时,还可以…

亲历者说 | 完整记录一年多考拉海购的云原生之路

简介: 考拉海购的整个云化改造是从 2019 年 10 月份开始的,当时的唯一目标就是短时间内快速完成迁移。在不到 4 个月的时间里,考拉团队唯一考虑的是如何以最快的速度完成使命,云原生是我们选择的最合适的一条路。 前言 考拉海购的…

为了一个HTTPS,浏览器操碎了心···

作者:轩辕之风O来源:编程技术宇宙 浏览器我是一个浏览器,每到夜深人静的时候,主人就打开我开始学习。为了不让别人看到浏览记录,主人选择了“无痕模式”。但网络中总是有很多坏人,他们通过抓包截获我和服务…

深度 | 阿里云蒋江伟:什么是真正的云原生?

简介: 而今,云原生成了耳熟能详的热门词,似乎不提云原生就落伍了,加入 CNCF 也成了云厂商引以为傲的技术优势。 我们也看到各种云原生的定义,有来自 CNCF 的“微服务容器持续交付DevOps”,也有来自不同云厂…

媒体智能-淘宝直播流媒体互动实践 | D2 分享视频+文章

背景:今天给大家带来的分享主题是《媒体智能-淘宝直播流媒体互动实践》,内容分为5个部分,首先看看在淘宝直播的直播间里主播可以怎样给用户拜年;然后具体讲如何制作一个手势拜年的特效;接着介绍我们媒体智能整体的方案…

从云网络时延看应用部署架构

简介: 介绍云网络时延的构成,并对其进行量化的分析,以及从云网络时延看不同应用对应的部署架构。 也简单的分析了5G时代对应用部署架构的影响和度量云网络时延的产品和工具。 在引出云网络时延这看起来比较专业的话题前,先看几个比…

mPaas 研发流程和线上运维介绍

简介: mPaas 研发流程和线上运维介绍 1. 背景 金融级移动开发平台 mPaaS[1](Mobile PaaS)为 App 开发、测试、运营及运维提供云到端的一站式解决方案,能有效降低技术门槛、减少研发成本、提升开发效率,协助企业快速搭…

html翻转切换div效果,图片翻转效果

图片翻转效果* { margin: 0; padding: 0;}ul { list-style-type: none;}body { font: 14px "Microsoft Yahei"; overflow-x: hidden; background-color: #2B2B2B; }h1 { width: 900px; margin: 40px auto 100px; font: 32px "Microsoft Yahei"; text-align…

Apache Flink 在实时金融数据湖的应用

简介: 本文由京东搜索算法架构团队分享,主要介绍 Apache Flink 在京东商品搜索排序在线学习中的应用实践 一、背景 在京东的商品搜索排序中,经常会遇到搜索结果多样性不足导致系统非最优解的问题。为了解决数据马太效应带来的模型商品排序多…

写给小白的云计算入门科普

作者:小枣君来源:鲜枣课堂云计算介绍2006年8月9日,当时的谷歌首席执行官埃里克施密特(Eric Schmidt)在搜索引擎大会(SES San Jose 2006)上,首次提出了“云计算”(Cloud C…

阿里云拨测:主动探测Web应用质量,助力提升用户体验

简介: 阿里云拨测是一种针对互联网应用(Web页面、网络链路等)进行应用性能和用户体验监测的服务,无需嵌码即可为云上用户提供开箱即用的企业级主动拨测式应用监测解决方案。 随着中国数字化经济的蓬勃发展,越来越多的企…

大数据,从青铜到王者

一.大数据方向工作介绍大数据方向的工作目前分为三个主要方向:01.大数据工程师02.数据分析师03.大数据科学家04.其他(数据挖掘本质算是机器学习,不过和数据相关,也可以理解为大数据的一个方向吧)二.大数据工程师的技能要求总结如下…

如何编写有效的接口测试?

简介: 在所有的开发测试中,接口测试是必不可少的一项。有效且覆盖完整的接口测试,不仅能保障新功能的开发质量,还能让开发在修改功能逻辑的时候有回归的能力,同时也是能优雅地进行重构的前提。编写接口测试要遵守哪些原…

商业方向的大数据专业_结合当前的人才需求趋势,大数据专业考研时可以选择哪些主攻方向...

首先,对于大数据专业的本科生来说,当前读研是不错的选择,随着大数据技术开始逐渐落地应用,产业领域需要大量高端应用型人才,所以如果没有继续读博的计划,可以重点关注一下专硕。在读研方向的选择上&#xf…