7

setVisibility(View.GONE) 和 setAlpha(0f) 有什么区别?

4

6 回答 6

11

setVisibility(View.GONE) 不仅会隐藏您的视图,还会回收该视图占用的空间。但是 setAlpha(0f) 等效于 setVisibility(View.INVISIBLE) ,它只隐藏视图并仍然占用布局中的空间。

于 2013-05-16T18:31:32.033 回答
4

setVisiblity(View.GONE)使视图不可见:

此视图是不可见的,并且它不占用任何空间用于布局目的。

setAlpha(0)只是使 View 透明,但它仍然在空间中并且能够与之交互。

阿尔法文档: http: //developer.android.com/reference/android/view/View.html#setAlpha(float)

可见性文档: http: //developer.android.com/reference/android/view/View.html#setVisibility(int)

于 2013-05-16T18:32:21.433 回答
2

我认为定义以下所有3种不同情况之间的区别是很有价值的。

请注意,setVisibility(View.INVISIBLE)setAlpha(0f)也是不同的。

setVisibility(View.GONE)

隐藏视图并移除视图占用的空间。停用绑定到视图的OnClickListener 。

setVisibility(View.INVISIBLE)

隐藏视图并保留视图占用的空间。停用绑定到视图的OnClickListener ->如果单击占用的空间,则不会触发事件

设置阿尔法(0f)

隐藏视图并保留视图占用的空间。保持绑定到视图的OnClickListener处于活动状态 ->如果单击占用的空间,则触发事件

于 2019-01-14T11:00:37.457 回答
1

如果您需要删除它们然后再次显示它们,最好将可见性设置为消失,然后再次更改回可见。setAlpha(0f) 相当于 setVisibility(View.INVISIBLE) 只隐藏视图

于 2013-05-16T18:32:31.547 回答
1

setVisibility(View.GONE)使您的视图不可见且不占位(与 不同View.INVISIBLE

setAlpha(0f)使您的视图变得透明但视图仍然占据位置并且可以接收一些事件,例如点击事件

于 2019-05-09T14:40:17.010 回答
0

setAlpha() - 设置视图的不透明度。这是一个从 0 到 1 的值,其中 0 表示视图完全透明,1 表示视图完全不透明,如 (0

于 2013-05-16T19:02:01.223 回答