Android 安卓:试图理解安卓:布局和重量

Android 安卓:试图理解安卓:布局和重量,android,layout,android-layout-weight,Android,Layout,Android Layout Weight,我想把一页分成三部分。我想用百分比值来表示,但是Android不支持。相反,我必须使用android:layout\u weight。但我很难理解它,也很难把它做好。特别是如何计算实际大小。有没有办法从android:layout\u weight中获取百分比值(0..100%) 我通过几个案例(见附件截图)来描述这些问题。彩色字段都是带有android:layout\u height=“fill\u parent”的,因为我希望全屏在这些字段之间进行划分 案例1 好的,很简单。每个获得33%

我想把一页分成三部分。我想用百分比值来表示,但是Android不支持。相反,我必须使用android:layout\u weight。但我很难理解它,也很难把它做好。特别是如何计算实际大小。有没有办法从
android:layout\u weight
中获取百分比值(0..100%)

我通过几个案例(见附件截图)来描述这些问题。彩色字段都是带有android:layout\u height=“fill\u parent”的
,因为我希望全屏在这些字段之间进行划分

案例1

好的,很简单。每个
获得33%

案例2

Ups?!第一个(黄色)
完全消失?为什么?

案例3

又困惑了。黄色的
又回来了。但是,前两个
的重量越重,越小?发生了什么事

案例4

我完全不知道这一切背后的数学原理是什么

有没有一种方法可以从android:layout\u weight中获得一个百分比值(0..100%)

当然。把它们加起来等于100


对于“百分比值”,您希望
LinearLayout
中单个项目的
android:layout\u高度
0px

当您使用android:layout\u height=“fill\u parent”作为条形图时,不会留下任何可用空间。(因为它们正在填充父对象。)因为所有3个都设置为填充,所以请求的高度实际上是父对象高度的3倍,因此权重将应用于负剩余空间。这就解释了你看到的奇怪行为,以及为什么将布局高度设置为0px可以解决这个问题。

Mark,你让我开心了一天。你简直不敢相信我已经花了多少时间试图找出这些奇怪的案例。一个简单的
android:layout\u height=“0px”
解决了所有问题:-)将layout\u width设置为“fill\u parent”,并将layout\u weight设置为浮动值,如“0.2”、“0.75”,在这种情况下,数字越小,元素占用的空间越大。你能告诉我这是不是一种可以接受的方式吗?链接已经失效了。你的博客文章在别处有吗?