Java RelativeLayout内部的LinearLayout使用超级父级作为父级

Java RelativeLayout内部的LinearLayout使用超级父级作为父级,java,android,android-linearlayout,android-relativelayout,Java,Android,Android Linearlayout,Android Relativelayout,我的布局如下: <LinearLayout width:fill height:fill > <RelativeLayout width:fill height:wrap > <ImageView width:fill height:wrap > <LinearLayout width:wrap height:wrap /> </RelativeLayout> </LinearLayout> 当

我的布局如下:

<LinearLayout width:fill height:fill >
  <RelativeLayout width:fill height:wrap >
    <ImageView width:fill height:wrap >
    <LinearLayout width:wrap height:wrap />
  </RelativeLayout>
</LinearLayout>

当涉及垂直属性时,最内部的LinearLayout似乎不知道它在RelativeLayout内。重力只在水平方向起作用。出于所有意图和目的(垂直),内部线性布局认为外部线性布局是其父级。对齐父顶部/底部会拉伸它和相对线布局,以填充外部线性布局

最终,我想要的是相对布局高度将imageview包裹起来,就像它是它的背景一样(尽管它意味着在背景顶部的另一个视图的顶部覆盖),线性布局只是在相对布局的约束范围内工作


此外,我希望能够剪辑任何超出包装imageview的相对布局边界的内容。我的最佳选择是什么?

我认为您的问题在于
包装内容
没有限制
视图的上限(至少由家长限制)。因此,您的
RelativeLayout
的高度可以达到其父级的全尺寸。如果它的父对象不是
wrap\u content
,它将延伸到它的父对象,依此类推,直到它到达一个具有上限的父对象

在这种情况下,您的上一任家长受到手机大小的限制,因此它就到此为止。不要在最里面的
线性布局上使用重力。在最内部的
线性布局上使用属性
layout\u centerInParent=“true”
。除非布局变得比
图像视图大,否则它应该符合
相对视图的中心

编辑:
您可能还想尝试使用不同比例的
ImageView
。有一些可以在不裁剪或扭曲比例的情况下将图像缩放到最大。有一些会始终填充整个视图,但可能会裁剪或扭曲图像。

您的帖子中有许多内容不清楚,可能您应该发布完整版本的XML代码

根据我的理解,我猜您没有使用相对性约束,例如
布局\u alignParentBottom=“true”
布局\u centerVertical=“true”
。这些将起作用,与重力特性不同