2011-11-29 43 views
0

我有一種在父元素內的特定元素上的wrap_content的方法嗎?舉例來說,我有類似如下的佈局:將RelativeLayout的高度限制爲特定的子視圖

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

父包約束是很寬鬆的,但我想它專門使用匹配的寬度,但總是與攝像畫面的高度。

當我將此視圖放在另一個RelativeLayout中,其中每個視圖在另一個上面或下面對齊以填充潛在更改的超級視圖時,會出現此問題。 LinearLayout實際上並沒有拉伸的東西來填充,所以我切換到了Relative,但是當我這樣做時,上面描述的視圖在我希望它仍然匹配圖像視圖的高度時垂直拉伸。

有沒有很好的解決這個問題?

回答

0

你可以嘗試把下面的(僞)中的onResume()方法:

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

你需要確保你這樣做之前調用myRelativeLayout.measure(),讓系統知道View的大小是什麼s會。

只是一個想法,您可以嘗試,讓我知道,如果它的工作原理:)

+0

由於這是一個自包含的化合物成分,我可能會希望把這個'onLayout()'。但是,'RelativeLayout'上似乎沒有'setHeight()'方法。我嘗試覆蓋'onMeasure()'並使用'setMeasuredDimension(this.getMeasuredWidth,this.subview.getMeasuredHeight()'和其他一些變體,但它們都不起作用。它不做任何事情或者整個視圖消失。 –

相關問題