setVisibility(View.GONE) 和 setAlpha(0f) 有什么区别?
6 回答
setVisibility(View.GONE) 不仅会隐藏您的视图,还会回收该视图占用的空间。但是 setAlpha(0f) 等效于 setVisibility(View.INVISIBLE) ,它只隐藏视图并仍然占用布局中的空间。
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)
我认为定义以下所有3种不同情况之间的区别是很有价值的。
请注意,setVisibility(View.INVISIBLE)和 setAlpha(0f)也是不同的。
setVisibility(View.GONE)
隐藏视图并移除视图占用的空间。停用绑定到视图的OnClickListener 。
setVisibility(View.INVISIBLE)
隐藏视图并保留视图占用的空间。停用绑定到视图的OnClickListener ->如果单击占用的空间,则不会触发事件。
设置阿尔法(0f)
隐藏视图并保留视图占用的空间。保持绑定到视图的OnClickListener处于活动状态 ->如果单击占用的空间,则触发事件。
如果您需要删除它们然后再次显示它们,最好将可见性设置为消失,然后再次更改回可见。setAlpha(0f) 相当于 setVisibility(View.INVISIBLE) 只隐藏视图
setVisibility(View.GONE)
使您的视图不可见且不占位(与 不同View.INVISIBLE
)
setAlpha(0f)
使您的视图变得透明但视图仍然占据位置并且可以接收一些事件,例如点击事件
setAlpha() - 设置视图的不透明度。这是一个从 0 到 1 的值,其中 0 表示视图完全透明,1 表示视图完全不透明,如 (0