博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于weight属性使用的一些细节
阅读量:4553 次
发布时间:2019-06-08

本文共 720 字,大约阅读时间需要 2 分钟。

之前被这个属性困扰过好久,今天一个偶然的机会,终于把这个搞清楚了,现在与大家分享一下。

假设我们要在一个LinearLayout布局中显示两个按钮,button1和button2,button2的宽度是button1的二倍,正常情况下使用weight应该是这样的:

注意两个button的宽都是0dp

效果图:

这里写图片描述

可是如果换一种方式:

两个button的宽度都是match_parent,情况立马发生转变:

这里写图片描述

我以前就在这里不知道纠结了多少回,那么我们到底该怎么理解weight这个属性呢?

设置了weight属性的View的宽度等于原有宽度加上剩余空间的占比,其中剩余空间是指屏幕宽度相对于控件总宽度剩余的空间大小。

以第一种情况为例


假设屏幕宽度为L,第一个button原有宽度是0dp,那么该button的宽度为0+(L-0)×1/3 = (1/3)L

其中(L-0)中,L表示屏幕宽度,0表示两个控件的总宽度


以第二种情况为例


假设屏幕宽度为L,因为两个都是match_parent,所以总宽度是2L,那么对于第一个button而言,它的宽度为:L+(L-2L)×1/3 = (2/3)L

其中(L-2L)中,L表示屏幕宽度,2L表示两个控件的总宽度


总结:建议大家在使用weight属性的过程中把相应的宽或者高设置为0dp,这也是Google推荐的做法。水平排列的话宽设置为0dp,竖直排列的话高设置为0dp.

转载于:https://www.cnblogs.com/qitian1/p/6461758.html

你可能感兴趣的文章
腹部训练
查看>>
android ImageView scaleType属性
查看>>
day 4 继承
查看>>
14 模块
查看>>
4- 算法练习leetcode.com
查看>>
02-替换空格
查看>>
许式伟、张宴——系统架构运维思路对话
查看>>
android 左右页面滑动(滑屏)增加layout文件 而不是drawable(还有activity)
查看>>
替换textarea文本值中的换行符
查看>>
JPA + SpringData 操作数据库原来可以这么简单 ---- 深入了解 JPA - 2
查看>>
使用 Hadoop 进行语料处理(面试题)
查看>>
webmagic学习之路-1:采集安居客列表页测试
查看>>
node的consoidate的插件统一
查看>>
POj2387——Til the Cows Come Home——————【最短路】
查看>>
EPLAN标题页及图框的设计
查看>>
坐标下降法(coordinate descent method)求解LASSO的推导
查看>>
读后疑问
查看>>
实力为王 八年DBA经验谈
查看>>
More Effective C++ (静态绑定与动态类型)
查看>>
shell脚本57问
查看>>