setVisibility()和setAlpha()之间的区别

时间:2013-05-16 18:28:57

标签: android android-view

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

6 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:3)

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

  

此视图不可见,并且不需要任何空间用于布局。

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

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

  

请注意,还要设置可见性(View.INVISIBLE),    setAlpha(0f)不同。

setVisibility(View.GONE)

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

setVisibility(View.INVISIBLE)

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

setAlpha(0f)

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

答案 5 :(得分:0)

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

setAlpha(0f)使您的视图变得透明,但该视图仍占据位置,并且可以接收到诸如单击事件之类的事件