在什么情况下应该使用INVISIBLE而不是GONE?

min*_*pif 8 android

对于View有时可见但有时不可见的,取决于用户的行为,(保持相同的活动)什么是优先的?

myView.setVisibility(View.INVISIBLE); // or
myView.setVisibility(View.GONE);
Run Code Online (Sandbox Code Playgroud)

没有其他元素取决于myView尺寸或尺寸,因此图形结果是相同的.

由于INVISIBLE不会改变视图的尺寸,我猜它比GONE更可取,因为GONE我们可能需要不必要地测量和重绘其他视图.然后重新测量并重新绘制它们myView再次变得可见.

Sco*_*t W 20

您正在考虑对测量的影响.哪一个更有效取决于您更改视图可见性的频率.

例如,如果视图在大多数情况下不可见,那么使它GONE可能更有效率,因为系统不会在需要调整屏幕上的其他视图时不必要地测量和布置您的不可见视图.

另一方面,如果视图经常在可见和不可见之间发生变化,您可能会获得更好的性能,INVISIBLE因为您可能会在每次转换时避免额外的度量/布局.