“setVisibility(View.GONE)”和“setAlpha(0f)”有什么区别?
setVisibility(View.GONE) 不仅会隐藏您的视图,而且还会回收该视图占用的空间。然而 setAlpha(0f) 相当于 setVisibility(View.INVISIBLE),仅隐藏视图并仍占用布局中的空间。
setVisiblity(View.GONE)
会使视图不可见:
这个视图是不可见的,它不会占用任何布局空间。
setAlpha(0)
只会使视图透明,但仍然占用空间并且可以与之交互。我认为定义下面3种不同情况之间的区别是有价值的。
注意,setVisibility(View.INVISIBLE)和setAlpha(0f)也是不同的。
setVisibility(View.GONE)
隐藏视图并移除视图占用的空间。失效绑定到视图的OnClickListener。
setVisibility(View.INVISIBLE)
隐藏视图但保留视图占用的空间。失效绑定到视图的OnClickListener -> 如果点击了占用的空间,则不会触发事件。
setAlpha(0f)
隐藏视图但保留视图占用的空间。保持绑定到视图的OnClickListener处于活动状态 -> 如果点击了占用的空间,则会触发事件。
setVisibility(View.GONE)
使得你的视图不可见且不占用空间(与 View.INVISIBLE
不同)。
setAlpha(0f)
使得你的视图变为透明,但该视图仍占用空间并可以接收一些事件,如点击事件。
setAlpha() - 设置视图的不透明度。这是一个从0到1的值,其中0表示视图完全透明,1表示视图完全不透明,如(0)。
setAlpha()
方法是针对 API Level 11 及以上版本的新功能,旨在与硬件加速配合使用。 - CommonsWare