android:height与android:layout_height之间有什么区别?

5 浏览
0 Comments

android:height与android:layout_height之间有什么区别?

我期望这个TextView的测量高度为96dp,无论“Test”占用了多少空间(高度上),我希望它被截断。

然而,我得到的是完整的“Test”加上48dp的填充。

我可以为layout_height设置任何有效的值,结果都是一样的。

要获得96dp的高度,我需要:


在这里,我可以将layout_height设置为任何有效的值(但必须作为必需属性存在)。

我从未在XML中使用过height属性,但在文档中找不到它们之间的区别,特别是在元素设置了填充和/或边距值时如何计算每个值。

是否有任何可用的资源来讨论这个问题,或者有人可以在这里解释一下吗?


编辑(问题摘要):

可能是我使用的情况导致了问题,因此上面的例子可以忽略(我在一个新项目中尝试了不同的属性组合,得到了不同的结果)。

但是我的原始问题仍然适用(有些重叠):

  1. 它们之间有什么区别?
  2. 何时应该使用其中之一?
  3. 一个的使用是否会影响另一个的使用?
  4. 一个的使用是否会对其他可以控制视图测量尺寸的属性(如填充或边距)产生影响?

编辑2(一个旁白):

如果这有助于理解我的初始情况与新项目的区别:

我有一个将windowActionBarOverlay设置为true的活动,所以我的内容会在(半透明的)ActionBar下流动。

我还使用了Croutons,现在它们出现在ActionBar下方。Ben Weiss建议我将Crouton附加到不同的ViewGroup上,但我不确定应该将其附加到哪个ViewGroup上。

相反,我提供了一个自定义视图(在需要时被填充),作为Crouton(第一部分问题中的TextView),并将其顶部填充设置为ActionBar的相同值,这样它就会正常地垂直显示在ActionBar下方(其他问题留待另一天解决)。

0
0 Comments

android:height和android:layout_height的区别是,android:height指定了对象(例如xml中的按钮)的高度,而android:layout_height指定了视图的基本高度。

出现这个问题的原因是因为android:height和android:layout_height在功能上有所不同,有些人可能会混淆它们的用法。

解决方法是要清楚理解android:height是用来指定对象的高度,而android:layout_height是用来指定视图的基本高度。这样就可以正确使用它们了。

0
0 Comments

问题出现的原因是对于Android布局中的高度属性,存在两种不同的属性:`android:height`和`android:layout_height`,这两者之间存在一定的差别。根据对这两个属性的实际操作和观察,发现`layout_height`是一种灵活的高度属性,它可以根据内容的大小进行自动扩展或收缩,而`height`则是一个确定的高度值。

对于提出问题的具体情况,发生了以下情况:TextView文本围绕在"Test"文字周围,但仍然使用了48dp的`paddingTop`属性。

但是,一些`android.view.ViewGroup`可能会自行设置高度,这完全取决于所使用的布局策略。

为了解决这个问题,需要仔细考虑所需的布局效果,并选择合适的高度属性进行设置。如果需要一个灵活的高度属性,可以使用`layout_height`,并根据内容的大小进行自动调整。如果需要一个确定的高度值,可以使用`height`属性进行设置。

总之,了解和正确使用这两个属性可以帮助我们更好地控制Android布局中的高度。

0
0 Comments

问题的出现原因:该问题的出现是因为在Android布局中,存在多个与视图尺寸相关的属性,如android:height和android:layout_height,这可能导致开发者对于何时使用哪个属性产生困惑。

解决方法:根据提供的内容,可以得出以下解决方法:

1. 对于问题1,解释了android:height和android:layout_height的区别。其中,android:height是视图的初始大小,而android:layout_height是用于告诉所属的ViewGroup视图应该如何重新调整大小。

2. 对于问题2,给出了答案取决于具体使用的子类。根据内容推断,使用android:layout_height是在大多数情况下使用的正确参数。

3. 对于问题3,说明了使用一个属性会递归地影响另一个属性。例如,TableLayout会通过读取和写入android:width属性来确定最宽的对象,并将所有其他对象调整为相同的大小。

4. 对于问题4,解释了使用一个属性对其他控制视图测量尺寸的属性是否有影响。其中,android:padding不受影响,但android:layout_margin会受到影响。需要注意的是,并非所有的布局管理器都支持边距。

开发者在Android布局中应该将所有的宽度和高度属性视为提示,最终的视图尺寸由使用的ViewGroup的布局管理器决定。

0