View.INVISIBLE
和 View.GONE
在 View 的可见性状态方面有什么区别?View.INVISIBLE
和 View.GONE
在 View 的可见性状态方面有什么区别?不可见:
这个视图是不可见的,但它仍然会占用布局空间。
已消失:
这个视图是不可见的,对于布局来说不会占用任何空间。
display:none
和visibility:hidden
:-) - anishsane根据文档,我们可以得知:
View.GONE:视图不可见,对于布局来说也不占据任何空间。
View.INVISIBLE:视图不可见,但对于布局来说会占据相应的空间。
通过一些图片来清晰展示这个概念。
假设您有三个按钮,如下所示:
现在,如果您将第二个按钮的可见性设置为不可见(View.INVISIBLE
),那么输出结果将会是:
而当您将第二个按钮的可见性设置为消失(View.GONE
)时,输出结果将会是:
希望这可以解开您的疑惑。
View.GONE
初始化一个视图,那么这个视图可能没有被初始化,你将会得到一些随机错误。View.GONE
,然后尝试启动动画,根据我的经验,我的动画有时候会随机工作。有时可以,有时不行。View.VISIBLE
或 View.INVISIBLE
以在屏幕上呈现(绘制)它,然后再进行处理。INVISIBLE:
视图必须被绘制,这需要时间。
GONE:
视图不需要被绘制。
Button _mButton = new Button(this);
_mButton = (Button)findViewByid(R.id.mButton);
相比于可见性为invisible,这需要更多的时间。
视图的属性为View.INVISIBLE时,该视图在布局中虽然不可见,但仍将占据一定空间。
视图的属性为View.GONE时,该视图在布局中既不可见,也不会占据任何空间。
View.GONE
- 视图不会显示,其他视图也不会考虑它的存在。
View.INVISIBLE
- 视图不会显示,但是它会在布局中占据其分配的空间。