Android:尝试了解 android:layout_weight

发布于 2024-09-16 22:29:46 字数 1028 浏览 9 评论 0原文

我试图将一个页面分为三个部分。我想以百分比值的形式执行此操作,但是 Android 不支持。相反,我必须使用android:layout_weight。但我很难理解它并正确理解它。特别是实际尺寸是如何计算的。有没有办法从 android:layout_weight 中获取百分比值(0..100%)?

我通过几个案例(见附图)来描述问题。彩色字段都是 android:layout_height="fill_parent",因为我希望在这些字段之间划分全屏。

案例 1

alt text

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

案例 2

alt text

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

案例3

alt text

又困惑了。黄色的 又回来了。然而,前两个重量较重的 会变小吗?到底是怎么回事?

案例 4

alt text

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

I'm trying to divide a page in three parts. I'd like to do it in percentage values, however that is not supported by Android. Instead I have to use android:layout_weight. But I have a hard time understanding it and getting it right. Especially how the actual size gets calculated. Is there a way to get a percentage value (0..100%) out of android:layout_weight?

I went through a few cases (see attached screenshot) to describe the problems. The colored fields are all <LinearLayout> with android:layout_height="fill_parent", because I want the full screen to be divided between those.

Case 1

alt text

Okay, simple. Every <LinearLayout> gets 33%.

Case 2

alt text

Ups?! The first (yellow) <LinearLayout> disappears completely? Why?

Case 3

alt text

Confused again. The yellow <LinearLayout> is back. However, the two first <LinearLayout> with the heavier weight get smaller? What is going on?

Case 4

alt text

I have absolutely no idea what the maths behind all this is.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

末が日狂欢 2024-09-23 22:29:46

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

当然。让它们相加为 100。

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

Is there a way to get a percentage value (0..100%) out of android:layout_weight?

Sure. Make them add up to 100.

For your "percentage value", you want the android:layout_height of the individual items within the LinearLayout to be 0px.

囍孤女 2024-09-23 22:29:46

当您对栏使用 android:layout_height="fill_parent" 时,您不会留下任何可用空间。 (因为它们正在填充父级。)因为所有 3 个都设置为填充,所以请求的高度实际上是父级高度的 3 倍,因此权重将应用于负的剩余空间。这解释了您所看到的奇怪行为,以及为什么将layout_height 设置为 0px 可以解决它。

When you use android:layout_height="fill_parent" for the bars, you are not leaving any available space. (Since they are filling the parent.) Because all 3 are set to fill, the requested height is actually 3x the parent height, so the weights are being applied to a negative remaining space. This explains the weird behavior you are seeing, and why setting layout_height to 0px solves it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文