getHeight()vs getLayoutParams().height

Bud*_*ril 15 height android view

是有什么区别getHeight()getLayoutParams().heightView?我有一个View(GoogleAdView),我想隐藏它,我设置getLayoutParams().height为零,但广告的高度(ad.getHeight())不是零.

有没有办法隐藏View它,以便它不占用布局中的空间?

我试图将其可见性设置为GONE或设置ad.getLayoutParams().height为零,但这不起作用.

big*_*nes 20

LayoutParams.height是您希望视图在布局后的高度,并且可以设置为特定常量,如WRAP_CONTENT,getHeight()返回实际高度(它返回0直到视图未布局).了解Android如何绘制视图视图 - 大小,填充和边距.

正如迈克尔所说,你必须调用requestLayout().


Mic*_*ael 5

隐藏视图并在布局中忽略它的正确方法是使用

setVisibility(View.GONE);
Run Code Online (Sandbox Code Playgroud)

如果这不适合您,您需要找出原因.试图调整尺寸并不是一条好路.

如果您的布局有问题,请在此处发布.

  • 我的问题是,如果我使用setVisibility(View.GONE),空间是广告仍然未被占用,布局不会自己调整大小.我试过ad.refreshDrawableState(); 但仍然没有调整布局... (2认同)
  • 对不起,是requestLayout() (2认同)