2011-01-28 112 views
12

getHeight()getLayoutParams().height之間的差異是View?我有一個View(GoogleAdView),我想隱藏它,我將getLayoutParams().height設置爲零,但廣告的高度(ad.getHeight())不爲零。getHeight()vs getLayoutParams()。height

有沒有辦法隱藏View,使它不佔用佈局空間?

我試圖將其可見性設置爲GONE或將ad.getLayoutParams().height設置爲零,但這不起作用。

回答

18

LayoutParams.height是你願望您的視圖將曾經的佈局,可以設置爲特定的常數像WRAP_CONTENT,getHeight()返回實際高度(返回0,直到觀點並沒有佈局)的高度。見How Android Draws ViewsView - Size, padding and margins

正如Michael所說,您必須調用requestLayout()。

4

隱藏視圖,而忽略它的佈局,正確的方法是使用

setVisibility(View.GONE); 

如果這不是爲你工作,你需要找出原因。試圖調整大小並不是一條好路徑。

如果您的佈局有問題,請將其發佈到此處。

+2

我的問題是,如果我使用setVisibility(View.GONE),空間是廣告仍然未被佔用,並且佈局不會自行調整大小。我試着用ad.refreshDrawableState();但仍然佈局不調整... – 2011-01-28 08:23:36