将视图的可见性更改为INVISIBLE / GONE时,Android性能影响?

时间:2015-03-23 15:52:30

标签: android progress-bar android-view android-progressbar

我一直在我的Android应用程序中使用一些进度条(Lazy加载GridViews)。因此,当加载每个项目时,我将进度条设置为INVISIBLE。我知道

不可见:此视图不可见,但仍会占用空间以进行布局。

GONE:此视图不可见,并且不需要任何空间进行布局。

我怀疑的是,当我将进度条设置为INVISIBLE时,是否意味着该视图所需的资源仍在后台使用? (进度条动画示例)。如果我将它设置为GONE将会有任何性能变化(我知道它可能是微不足道的)。我很想知道它对性能的影响。感谢。

1 个答案:

答案 0 :(得分:0)

视图的内容和复杂性以及内部是否存在嵌套视图时,性能差异可能会有所不同。虽然布局信息仍然需要为整个布局扩展到内存中,但是不必为GONE或其子节点的视图计算视图测量值,并且不会绘制它,而INVISIBLE仅删除在计算视图测量值及其子视图时查看(及其子视图)。

如果您不希望视图在活动或片段的当前生命周期中再次出现,您可以使用 parent.removeView(progressView)将其完全删除,以获得最佳性能和内存优化

在你的情况下它可能没有多大帮助,但是如果你要进行前沿优化,那么我会采用这种方法在完成后删除视图。