2011-01-28 7 views
12

getHeight()getLayoutParams().heightの違いは何ですか?私はView(GoogleAdView)を持っていて、それを隠したいのですが、getLayoutParams().heightをゼロに設定しましたが、広告の高さ(ad.getHeight())はゼロではありません。getHeight()とgetLayoutParams()。高さ

Viewを隠す方法はありますか?レイアウト内のスペースを占有しないようにしますか?

私は可視性をGONEに設定しようとしたか、ad.getLayoutParams().heightをゼロに設定しようとしましたが、これは機能しません。

答えて

18

LayoutParams.heightあなたは願いビューが一度にレイアウトしているだろうし、実際の高さを返しますgetHeight() WRAP_CONTENT、(ビューがレイアウトされなくなるまで、それは0を返す)のような特定の定数に設定することができた高さです。 How Android Draws ViewsおよびView - Size, padding and marginsを参照してください。

Michaelが言ったように、requestLayout()を呼び出す必要があります。

4

ビューを非表示とレイアウトで、それを無視する正しい方法は、これはあなたのために働いていない場合は、理由を見つける必要がある

setVisibility(View.GONE); 

を使用することです。サイズを調整しようとするのは良い方法ではありません。

レイアウトに問題がある場合は、ここに投稿してください。

+2

私の問題は、setVisibility(View.GONE)を使用すると、広告スペースが空いていてレイアウトがサイズ変更されないということです。私はad.refreshDrawableState()で試した。それでもレイアウトはサイズ変更されません... –

+0

refreshDrawableState()は役に立ちません。ビューを隠した後にrefreshLayout()を呼び出しましたか? – Michael

+0

myレイアウトオブジェクト(LinearLayout)にはこのメソッドがありません(refreshLayout())。 –

関連する問題