LinearLayout(线性布局)关于fill_parent和weight搭配使用计算的详细理解

2023-05-16

基于: https://www.runoob.com/w3cnote/android-tutorial-linearlayout.html

说明:代码都是基于原文章,本文只对其中计算方面的理解稍加分析以便于理解!!!

写这段简单的代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
    xmlns:tools="http://schemas.android.com/tools"    
    android:id="@+id/LinearLayout1"    
    android:layout_width="match_parent"    
    android:layout_height="match_parent" >    
    
    <TextView    
        android:layout_weight="1"    
        android:layout_width="fill_parent"    
        android:layout_height="fill_parent"    
        android:text="one"     
        android:background="#98FB98"    
     />    
     <TextView    
        android:layout_weight="2"    
        android:layout_width="fill_parent"    
        android:layout_height="fill_parent"    
        android:text="two"     
        android:background="#FFFF00"    
     />    
     <TextView    
        android:layout_weight="3"    
        android:layout_width="fill_parent"    
        android:layout_height="fill_parent"    
        android:text="three"     
        android:background="#FF00FF"    
     />    
    
</LinearLayout> 

 

效果图:

原作者分析:这个时候就会有疑问了,怎么会这样,这比例是2:1吧,那么three去哪了?代码里面明明有 three的啊,还设置了3的,而1和2的比例也不对耶,1:2:3却变成了2:1:0,怎么会这样呢? 答:这里其实没那么简单的,还是需要我们计算的,网上给出的算法有几种,这里就给出笔者 觉得比较容易理解的一种: step 1:个个都是fill_parent,但是屏幕只有一个啦,那么1 - 3 = - 2 fill_parent step 2:依次比例是1/6,2/6,3/6 step 3:先到先得,先分给one,计算: 1 - 2 * (1/6) = 2/3 fill_parent 接着到two,计算: 1 - 2 * (2/6) = 1/3 fill_parent 最后到three,计算 1 - 2 * (3/6) = 0 fill_parent step 4:所以最后的结果是:one占了两份,two占了一份,three什么都木有 以上就是为什么three没有出现的原因了,或许大家看完还是有点蒙,没事,我们举多几个例子试试就知道了!

step 1:个个都是fill_parent,但是屏幕只有一个啦,所以只有1个fill_parent, 3个控件要3个fill_parent, 所以1-3=-2fill_parent,这里还差两个fill_parent, 差两个怎么办呢?fill_parent说了,为了保证先到先得(早起的鸟儿有虫吃)的原则,这个缺少的面积要大家共同来分担;

step 2:根据权重weight, 大家每个占的比例是1:2:3,所以承担的损失就得按比例来分,各承担6份中得1/2/3;所以依次比例是1/6,2/6,3/6 ;

step 3:先到先得,先分给one, 一个fill_parent, one说我只预定了1份,所以我承担-2fill_parent的1/6损失- 2 * (1/6)就好了,所以计算: 1 - 2 * (1/6) = 2/3 fill_parent;

              接着到two,计算: 1 - 2 * (2/6) = 1/3 fill_parent

              最后到three,计算 1 - 2 * (3/6) = 0 fill_parent 

step 4:所以最后的结果是:one占了两份,two占了一份,three什么都木有(太贪心了, 哈哈哈。。。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LinearLayout(线性布局)关于fill_parent和weight搭配使用计算的详细理解 的相关文章

  • RedisTemplate之opsForValue使用说明

    转载链接出自 xff1a https blog csdn net qq 25135655 article details 80357137 Redis中opsForValue 方法的使用介绍 xff1a 1 set K key V valu
  • Python爬虫(二)——爬取电影天堂,保存下载地址

    首先我们开始要分析一下 xff0c 下载种子我们需要哪几步 xff1a 获取所有电影页的访问地址获取电影页源码提取出下载地址将下载地址保存 首先第一步 xff0c 我们来分析一下电影天堂网站的结构 xff0c 发现他跟我们的古诗文网还是非常
  • pixhawk飞控中添加uORB主题

    本说明针对 Firmware v1 2 0 参考 xff1a https pixhawk org start id 61 zh dev shared object communication 1 添加流程说明 在Firmware msg下新
  • px4 多旋翼SITL仿真

    好久不写csdn了 xff0c 自己的笔记都记在了onenote里面了 xff0c 没有时间写东西分享 xff0c 今天找了个记得比价规整的分享一下 备注 xff1a SITL需要程序源码和QGC xff0c 以及配置环境时安装的一些东西
  • keil空间不足,.\Objects\template.axf: Error: L6406E: No space in execution regions with .ANY selector mat

    关于keil空间报错 xff0c 我总结了一下集中解决方案 xff1a 1 有可能是所选主控芯片RAM xff0c ROM真的被用完了 xff0c 这是需要更换主控芯片 2 keil里面的优化还可以继续优化省出一点空间 下面红色标的选择跟你
  • 无人机之姿态控制篇

    姿态控制篇 拿四旋翼无人机为例 xff0c 四个桨叶旋转是的无人机产生了升力 xff0c 但是这个升力要怎么匹配才能使得无人机能够平稳的飞行呢 xff0c 这个就是无人机姿态控制的关键 如图四个电机1 2 3 4 xff0c 水平位置X x
  • 无人机小四轴定高篇

    无人机定高篇 定高 xff0c 也是无人机的标配功能 xff0c 可以说必须要有的 一般来说定高怎么做 xff0c 常规的思维就是计算出无人机的高度和Z轴速度 xff0c 然后对高度和速度进行PID运算 实际上大思想就是这么的简单 xff0
  • 无人机光流定点讲解

    无人机光流定点 光流是测速算法 xff0c 并不是直接定位的 简单理解 xff0c 光流就是通过检测图像中光点和暗点的移动 xff0c 来判断图像中像素点相对于飞行器的移动速度 如果地面是静止的 xff0c 自然就可以得到飞行器相对于地面的
  • TinyXml快速入门(一)

    作者 xff1a 朱金灿 来源 xff1a http blog csdn net clever101 对于xml文件 xff0c 目前我的工作只是集中在配置文件和作为简单的信息文件来用 xff0c 因此我不太喜欢使用msxml这种重量级的x
  • 华大单片机HC32L130/HC32L136从机IIC通信

    从机IIC理论知识 主机IIC的做法比较多 xff0c 从机IIC的就相对比较难一点 先补充一下从机IIC的思路 xff1a 先看IIC时序图 xff0c 然后根据时序图理清IIC从机需要做哪些判断 xff1a 从机发送 xff1a 判断I
  • cannot access memory

    cannot access memory 先说一个经历 xff1a 在一次我测试单片机FLASH时候 xff0c 程序就是一直运行的擦除FALSH xff0c 写入FLASH 然后再想通过SWD重新烧录程序就无法烧录进去了 具体现象如下 x
  • 无刷电机反方向高速旋转

    无刷电机反方向高速旋转 最近遇到一个问题 xff0c 就是无刷电机在给正转的力的时候如果用手往反方向快速的掰 xff0c 突然的电机会往反方向高速运动 xff0c 除非电机有阻力让转速慢下来 xff0c 要不就会一直反方向运动 经过一个晚上
  • 串口仿真数据正常,不接仿真数据异常

    今天遇到一个奇怪的问题 xff0c 折腾了大半天 具体问题如下 xff1a 串口我用的DMA空闲中断接收 xff0c 接仿真器仿真时接收数据完全正确 xff0c 没有异常 但是仿真器不接的时候 xff0c 正常外部供电串口接收数据就异常了
  • 普通定时器输出互补PWM带死区

    普通定时器输出互补PWM带死区 一般来说三相半桥电路需要互补PWM驱动 xff0c 而且互补PWM需要带死区 xff0c 死区的大小跟管子的性能参数有关 公司为了省成本 xff0c 在云台上把电机驱动芯片替换成三相半桥 用6个MOS驱动无刷
  • STM32F4配置内部时钟(HSI)

    STM32F4配置内部时钟 半年多没更新了 xff0c 今天配置F4的时候内部时钟问题整了2个小时 xff0c 记录下这个坑 有些板子由于没有贴外部晶振 xff0c 所以代码运行起来的时候时钟就会出问题 xff0c 本来配置的中断是1ms实
  • 无人机加速计、气压计、GPS数据融合

    加速计 气压计 GPS数据融合 在无人机控制当中 xff0c 传感器的参与那是必不可少的 xff0c 特别是陀螺仪 xff0c 最经典的为MPU6050 xff0c 目前大部分的无人机都是用的这个器件 熟悉MPU6050的都知道 xff0c
  • ROS串口编程学习笔记

    串口是一种设备间常用的通讯接口 xff0c 本文将记录如何在ROS上使用其提供的serial包进行串口通信 首先 xff0c 这里要引入一个名称为serial的包 xff0c 这个包的安装命令为 xff1a sudo apt get ins
  • github国内镜像代理【持续更新】

    整理github国内代理 xff08 镜像站 xff09 会不定期持续更新 不过由于我都是优先从gitee上找资源 xff0c 所以有时会更新的比较慢 域名更新时间备注https kgithub com2023 03 14 已失效备注 以下
  • android适配ipv6,请求慢?

    先贴一篇我们经常能搜索到的解决方案 xff1a Android 在 4G 下访问 IPV6 慢的解决方案 文章很有参考意义 xff0c 但也并不是所有请求慢的的原因 xff01 本文是另一种原因 有兴趣就继续往下看一看 使用的okhttp框
  • 总结一下__declspec(dllimport)的作用

    作者 xff1a 朱金灿 来源 xff1a http blog csdn net clever101 是时候总结一下 declspec dllimport 的作用了 可能有人会问 xff1a declspec dllimport 和 dec

随机推荐

  • Autojs初试

    1 环境布置 AutoJs 目前能找到的 autojs的版本是 Autojs 4 4 1 7 pro pojie 8pro 需付费 VsCode VScode 安装对应版本插件 xff0c autojs 和autojs pro需要插件不同
  • APK反编译流程学习[1]

    1 获得 classes dex classes dex是由java文件编译再通过dx工具打包而成的 将apk重命名为zip或者rar后缀 xff0c 进行解压 里面的文件基本都是乱码 xff0c 如下图 xff1a 2 使用dex2jar
  • c csv 保存函数

    include lt stdio h gt include lt stdlib h gt include lt string gt int save csv const char file path unsigned char data i
  • 坐标系变换推导(欧拉角、方向余弦矩阵、四元数)+代码解析

    一 为什么选择四元数 描述两个坐标系之间的变换关系主要有几个方法 1 欧拉角法 存在奇异性和万向锁而且三个轴旋转的顺序不好定 2 方向余弦矩阵法 翻译为Directional cosine matrix xff0c 简称DCM xff0c
  • 如何从正确的原理图生成PCB图

    首先 编译sch文件 Project 下面的第二个选项 之后生成网表文件 Design Netlist for Project 之后在PCB文件里面画板子形状 CRTL 43 M 是测量长度 选择你画的板子大小的封闭图形边界线 在Mecha
  • python中try except处理程序异常的三种常用方法

    转载自 xff1a http www pythontab com html 2013 pythonjichu 0204 210 html 如果你在写python程序时遇到异常后想进行如下处理的话 一般用try来处理异常 xff0c 假设有下
  • 好久之前看过的BOOT0与BOOT1设置问题

    好久之前看过关于BOOT0与BOOT1问题 xff0c 用于在不同地方启动 xff0c 这回又碰到了 stm32的flash读保护了 用户闪存 61 内置的flash 掉电不易失 SRAM 61 芯片的内部的RAM 就是所谓的内存 ROM
  • 论文中的引用的超链接格式

    引用自 xff1a http jingyan baidu com article 4e5b3e1952739291901e2495 html 百度经验 http jingyan baidu com article 4e5b3e1952739
  • 使用ST-Link Utility去除STM32芯片读写保护

    转载学习自 xff1a http blog csdn net hxiaohai article details 78546431 locationNum 61 10 amp fps 61 1 问题 xff1a 使用ISP J Link ST
  • I2C的 SCL和SDA为什么要上拉

    因为允许把多个I2C总线器件连接到总线上 xff0c 连接到I2C总线上的器件是漏极开路或集电极开路的 xff0c 可以实现线与功能 同时 xff0c 因为接了上拉电阻 xff0c 在总线空闲期间 xff0c SDA和SCL都是高电平 xf
  • 略谈中国软件产品化的路线图

    作者 xff1a 朱金灿 来源 xff1a http blog csdn net clever101 预计这篇要挨一些砖头 xff0c 但既然说了 xff0c 就不怕挨一些砖头 进入正题 蒙圣光大侠的一篇 软件产品化 国内IT人之痛 引发了
  • STM32的HAL库的 I2C和UART使用函数,几个好用的

    HAL StatusTypeDef I2C Write uint8 t pBuffer uint8 t DeviceAddr uint8 t RegisterAddr uint16 t NumByteToWrite uint8 t data
  • 解析一波csdn.net的图片链接

    研究一波csdn net的图片链接 例子如下 https img blog csdnimg cn 0380d37492324ec58cc898470b100679 png x oss process 61 image watermark t
  • Unity VR游戏开发干货教程:VR中的交互方式

    游戏程序 平台类型 虚拟VR 程序设计 编程语言 引擎 SDK Unity3D 2D GameRes游资网授权发布 文 王寒 在VR项目中 xff0c 我们需要在用户 凝视 某个物体时将其激活 在VRSamples中 xff0c 我们构建了
  • 面向服务器的快速应用程序开发(RAD)

    面向服务器的快速应用程序开发 RAD Visual Studio NET将极大地降低创建网络应用程序的复杂性 创建成功的网络应用程序的关键是将重点放在中间层上 商务逻辑和应用程序的大部份都出现在中间层服务器上 Visual Studio N
  • 如何删除数组中的某个元素(C/Python/Java/Go/MATLAB)

    文章目录 前言一 C Python Java Go Matlab语言优势对比二 如何删除数组中的某个元素 xff0c 在各语言中的实现1 C语言2 Python3 Java4 Go语言5 MATLAB 总结 加粗样式 前言 根据之前的文章分
  • Python代码学习之给图片添加文字或图片水印

    前言 图片加水印有什么好处 xff1f 在现今的数字化时代 xff0c 网络上的图片泛滥 xff0c 盗图现象也越来越严重 因此 xff0c 在发布文章时 xff0c 为了保护自己的原创作品版权 xff0c 很多人选择使用水印来保护他们的图
  • 关于如何跨越抄袭程序阶段的一些断想

    作者 xff1a 朱金灿 来源 xff1a http blog csdn net clever101 不知你有没有经历这样的阶段 xff0c 反正我是有的 xff1a 作为中国有特色的万金油式的程序员 xff0c 突然接到一个完全陌生的任务
  • RTOS消息队列和邮箱区别

    消息队列可以发送多条消息 xff0c 消息队列遵守FIFO特性 xff0c 只能一条一条读和写消息 消息队列是邮箱数组 如果发送者是一对一的方式发送邮件 xff0c 则等待列表中的优先级最高的任务将获取邮件 xff1b 如果是以广播的方式发
  • LinearLayout(线性布局)关于fill_parent和weight搭配使用计算的详细理解

    基于 xff1a https www runoob com w3cnote android tutorial linearlayout html 说明 xff1a 代码都是基于原文章 xff0c 本文只对其中计算方面的理解稍加分析以便于理解