对于有时可见但有时不可见的View
,取决于用户的操作,(保持相同的活动)优先选择什么?
myView.setVisibility(View.INVISIBLE); // or
myView.setVisibility(View.GONE);
没有其他元素取决于myView
的大小或尺寸,因此图形结果是相同的。
由于INVISIBLE没有改变视图的尺寸,我猜它比GONE更可取,因为GONE我们可能不得不测量和重绘其他视图。当myView
再次变为可见时,重新测量并重新绘制它们。
答案 0 :(得分:20)
您正在考虑对测量的影响。哪一个更有效率取决于您更改视图可见性的频率。
例如,如果视图在大多数情况下不可见,那么使其GONE
可能会更有效率,因为系统不会在需要时不必要地测量和布置您的隐形视图调整屏幕上的其他视图。
另一方面,如果视图经常在可见和不可见之间发生变化,您可能会从INVISIBLE
获得更好的性能,因为您可能会在每次转换时避免额外的度量/布局。
答案 1 :(得分:0)
我想从我这边添加一些经验:
我有一个动画按钮(使用ValueAnimator
)。按钮从一侧移动到另一侧。
此按钮将切换列表的内容。
ListView
拍摄。ListView
=>添加了第二个ViewSwitcher
。同样的问题。ViewSwitcher
实际上只是将视图设置为 VISIBLE 或 GONE ,所以我希望在将列表设置为 VISIBLE时重绘强大的>大量UI线程时间的成本。所以我现在做的是添加一个FrameLayout
,将两个ListView
放在那里并将其设置为 INVISIBLE 而不是 GONE 。现在再也看不到口吃了! 希望这有助于某人。
答案 2 :(得分:-2)
我的其他元素不依赖于您的视图的可见性,那么您可以使用它们中的任何一个。它们将用于相同的目的。