将RelativeLayout的高度约束到特定的子视图

时间:2011-11-29 16:24:08

标签: android android-layout android-xml

我有一种方法可以在父元素内部的特定元素上wrap_content吗?例如,我有类似以下布局:

<RelativeLayout width:match height:wrap>
  <ImageView width:match height:wrap scale:fitXY />
  <LinearLayout width:wrap height:wrap>
</RelativeLayout>

父包装约束非常松散,但我希望它专门使用匹配的宽度,但总是匹配图像视图的高度。

当我将此视图放在另一个RelativeLayout中时,会出现问题,其中每个视图在另一个视图上方或下方对齐,以填充可能更改的超视图。 LinearLayout似乎并没有真正填充,所以我切换到相对,但是当我这样做时,上面描述的视图在我希望它仍然匹配图像视图的高度时垂直拉伸。

这个问题有一个很好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试在onResume()方法中添加以下(伪代码):

if(myRelativeLayout.height > myImageView.height)
    myRelativeLayout.setHeight(myImageView.height);

在执行此操作之前,您需要确保调用myRelativeLayout.measure(),以便系统知道View的大小。

只是一个想法让你尝试,让我知道它是否有效:)