我有两个具有相同宽度的线性布局 - 一个有两个孩子,一个有三个。我试图让最后两个孩子的宽度相同,但我无法理解为什么 Android 会这样。我终于用以下权重让它看起来像我想要的样子:
谁能向我解释为什么会这样?
我试着做一些简单的数学来找出原因。我猜这是重量的总和,减去孩子的重量,除以重量的总和,乘以父母的宽度。所以:
sum = 1 + 6
((sum - 6) / sum) * W = 14.3% * W
我为第二行尝试了相同的算法,但它完全关闭了:
sum = 1 + 1 + 1.5
((sum - 1.5) / sum) * W = 57.1% * W
更新
仅当子宽度设置为 match_parent 时,上述情况才成立。将宽度设置为 0 或 0dp,实际上表现如预期 - 更大的权重会导致为孩子分配更多的空间。该算法现在更有意义,并且对两行都按预期工作。
sum = 1 + 6
(1 / sum) * W = 14.3% * W
具有子宽度的权重的前一种行为是否按设计设置为 match_parent?如果是这样,计算孩子宽度的近似算法是什么?