Android getHeight()vs getLayoutParams().height

Android getHeight()vs getLayoutParams().height,android,view,height,Android,View,Height,视图的getHeight()和getLayoutParams().height之间有什么区别?我有一个视图(GoogleAdView),我想隐藏它,我将getLayoutParams().height设置为零,但广告的高度(ad.getHeight())不是零 有没有办法隐藏视图,这样它就不会占用布局中的空间 我尝试将其可见性设置为“已消失”或将ad.getLayoutParams().height设置为零,但这不起作用。在布局中隐藏视图并忽略它的正确方法是使用 setVisibility(Vi

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

有没有办法隐藏
视图
,这样它就不会占用布局中的空间


我尝试将其可见性设置为“已消失”
或将
ad.getLayoutParams().height
设置为零,但这不起作用。

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

setVisibility(View.GONE);
如果这对你不起作用,你需要找出原因。尝试调整大小不是一个好方法


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

LayoutParams.height
是您希望视图在布局后具有的高度,可以设置为特定常量,如WRAP\u CONTENT,
getHeight()
返回实际高度(在视图未布局前返回0)。见和


正如Michael所说,您必须调用requestLayout()。

我的问题是,如果使用setVisibility(View.GONE),则空间仍然未被占用,布局本身也不会调整大小。我试过使用ad.refreshDrawableState();但布局仍然无法调整大小…refreshDrawableState()将不会有帮助。隐藏视图后是否调用了refreshLayout()?我的布局对象(LinearLayout)没有此方法(refreshLayout())。为未调整大小的布局指定android:weight=“1”,然后尝试使用setVisibility(view.GONE);对于广告视图。