【发布时间】:2013-06-27 18:46:28
【问题描述】:
<TextView
android:layout_width="match_parent"
android:layout_height="48dp"
android:paddingTop="48dp"
android:text="Test"
/>
我希望 TextView 的测量高度为 96dp,无论“测试”占用了多少空间(高度方面)(希望它被切断)。
相反,我得到了完整的“测试”+ 48dp 的填充。
我可以为layout_height 输入任何有效值并得到相同的结果。
要获得 96dp 的高度,我需要:
<TextView
android:layout_width="match_parent"
android:layout_height="<any valid value>"
android:height="48dp"
android:paddingTop="48dp"
android:text="Test"
/>
同样,我可以将layout_height 作为任何有效值(但它需要作为必需属性存在)。
我从未在 XML 中使用过 height 属性,但我在文档中找不到差异,尤其是当它所操作的元素也设置了填充和/或边距值时,如何计算每个属性。
是否有任何资源可以讨论它,或者有人可以在这里解释它吗?
编辑(问题摘要):
可能是我使用它的情况导致了问题,所以我的上面的例子可以忽略(我在一个新项目中尝试过,从属性组合中得到了不同的结果)。
但我原来的问题仍然适用(有些重叠):
- 它们之间有什么区别?
- 什么时候应该使用一个而不是另一个?
- 使用一种会影响使用另一种吗?
- 使用 one 是否会影响其他可以控制视图测量尺寸的属性,例如内边距或边距?
编辑 2(旁白):
如果与新项目相比,它有助于了解我的初始情况:
我有一个将 windowActionBarOverlay 设置为 true 的活动,因此我的内容在(半透明)ActionBar 下流动。
我也使用面包块,现在出现在 ActionBar 下。 Ben Weiss 建议我将 Crouton 附加到不同的 ViewGroup,但我不确定将其附加到哪个 ViewGroup。
相反,我提供了一个自定义视图(在需要时会膨胀)作为 Crouton(问题第一部分中的 TextView),其顶部填充等于 ActionBar 的顶部填充,所以现在它垂直显示在下方ActionBar 正常(改天有其他问题)。
【问题讨论】:
-
有人能建议我如何改进这个问题,这样它就不需要匿名投票了吗?
-
这里有一个类似的问题:stackoverflow.com/questions/18091531/…
-
感谢@Prince,基于此,我投票决定关闭...显然我的是
tl;dr:P -
@ataulm 如果搜索“android layout_height vs height”,Google 会首先找到这个问题。 - 这个问题也是一个月前的。 ——而这个问题现在有了一个详尽的答案。 - 所以如果有什么其他问题应该被关闭。