改变 LinearLayout 的背景会改变它的宽度和高度

Posted

技术标签:

【中文标题】改变 LinearLayout 的背景会改变它的宽度和高度【英文标题】:Changing background of LinearLayout changes it's width & height 【发布时间】:2014-11-01 08:36:48 【问题描述】:

我尝试将 LinearLayout 的背景更改为一些木质纹理,但它会根据木质背景的尺寸改变 LinearLayout 的宽度和高度! 我需要 LinearLayout 来忽略背景尺寸!

<LinearLayout
  android:id="@+id/LinearLayout1"
  android:layout_
  android:layout_
  android:background="@drawable/wood"
  android:orientation="vertical" >

some content here which I need to wrap height to them!

</LinearLayout>

【问题讨论】:

可能有用:***.com/questions/8202647/… 【参考方案1】:

您的LinearLayout's 高度为"wrap_content"。这意味着它需要内容的高度(您的背景)。您可以将其更改为"match_parent" 或在dp 中为其指定固定大小。这样即使有背景也保持不变。

【讨论】:

但我希望它的大小适合我的真实内容,而不是背景。 根据您的布局为您的父布局提供“weightSum”及其子“权重”。使所有孩子的高度为 0dp。 欲了解更多信息,***.com/questions/7452741/…【参考方案2】:

如果您希望它是固定的,可以使用 dp 中的固定高度和宽度,或者动态计算旧背景的高度和宽度,然后通过将 LinearLayout 高度和宽度设置为您以编程方式计算的大小来应用新背景。

【讨论】:

【参考方案3】:

我只是将其替换为另一个容器,例如 ConstraintLayout.. 我没有时间弄清楚。

【讨论】:

以上是关于改变 LinearLayout 的背景会改变它的宽度和高度的主要内容,如果未能解决你的问题,请参考以下文章

Unity中根据字体的长度修改字体框和背景图width的大小

自定义的view如何在单击时候改变背景颜色

Android从不同的活动改变背景颜色

如何使用CSS让img跟父元素的宽或者高自适应

有没有办法改变按钮后面的背景颜色(button.setBackgroundResource)

在LinearLayout中AddView时向左改变方向