Iñi*_*igo 679
无形:
此视图不可见,但它仍占用布局空间.
GONE:
此视图不可见,并且不需要任何空间用于布局.
Pan*_*mar 252
从文档中你可以这么说
View.GONE此视图不可见,并且不需要任何空间用于布局.
View.INVISIBLE此视图不可见,但它仍占用布局空间.
让我们用一些图片清除这个想法.
假设您有三个按钮,如下所示
现在,如果将Button Two的可见性设置为invisible(View.INVISIBLE
),则输出将为
当你将Button Two的可见性设置为off(View.GONE
)时,输出将是
希望这会清除你的疑虑.
mes*_*mes 31
对于ListView或GridView,当可见性初始设置为时,还有另一个区别
无形:
调用适配器的getView()函数
GONE:
适配器的getView()函数没有调用,因此在不需要时阻止视图加载
我想添加到正确且成功的答案中,如果您以可见性初始化视图View.GONE
,则该视图可能尚未初始化,并且会出现一些随机错误。
例如,如果您将布局初始化为View.GONE
,然后尝试启动动画,根据我的经验,我的动画会随机运行几次。有时是,有时不是。
因此,在处理(调整大小,移动任何位置)视图之前,必须先将其初始化View.VISIBLE
或View.INVISIBLE
在屏幕中进行渲染(绘制),然后再进行处理。
当你每次编译程序时都让它消失时,组件被初始化,这意味着你正在从布局中删除组件,当你让它不可见时,组件将在布局中占用相同的空间,但每次你都不需要初始化它.
如果你设置 Visibility=Gone 那么你必须初始化组件..like
例如 Button _mButton = new Button(this);
_mButton = (Button)findViewByid(R.id.mButton);
因此与 Visibility = invisible 相比,它需要更多时间。
归档时间: |
|
查看次数: |
129814 次 |
最近记录: |