Android:试图理解android:layout_weight

我试图分成三个部分的一页。 我想以百分比值来实现,但Android不支持。 相反,我必须使用android:layout_weight 。 但是我很难理解它,并且正确。 特别是如何计算实际大小。 有没有办法从android:layout_weight获取百分比值(0..100%)?

我经历了几个例子(见附件截图)来描述问题。 所有的彩色字段都是<LinearLayout>android:layout_height="fill_parent" ,因为我想把整个屏幕分开。

情况1

替代文字

好的,简单。 每个<LinearLayout>获得33%。

案例2

替代文字

UPS?! 第一个(黄色) <LinearLayout>完全消失? 为什么?

案例3

替代文字

再次困惑。 黄色<LinearLayout>回来了。 但是,较重的两个<LinearLayout>变小了? 到底是怎么回事?

案例4

替代文字

我完全不知道这背后的math是什么。

Solutions Collecting From Web of "Android:试图理解android:layout_weight"

有没有办法从android:layout_weight获取百分比值(0..100%)?

当然。 使他们加起来100。

对于“百分比值”,您希望LinearLayout中的各个项目的android:layout_height0px

当您对酒吧使用android:layout_height =“fill_parent”时,您不会留下任何可用空间。 (因为他们正在填充父项。)因为所有3被设置为填充,所请求的高度实际上是父项高度的3倍,所以权重被应用于负的剩余空间。 这解释了你所看到的怪异行为,以及为什么将layout_height设置为0px来解决这个问题。