“GONE”的观点对演出有害吗?

我正在制作一个应用程序,它可能会为我节省一些时间来为多个活动提供一个布局,其中一些视图根据正在使用的活动设置为GONE。

我知道在一个布局中有大量的视图可能会导致糟糕的performance。 如果我有一个有大量意见的活动,但是这些意见中有很大一部分是去的,那么这个活动仍然performance不佳。 也就是说,被设定为“无效”的观点是否会造成业绩恶化? 如果是的话,他们要求的处理能力比VISIBLE或INVISIBLE的要less吗?

谢谢!

Solutions Collecting From Web of "“GONE”的观点对演出有害吗?"

你应该知道的第一件事:

  • View.GONE这个视图是不可见的,它不占用任何空间用于布局。
  • View.INVISIBLE这个视图是不可见的,但它仍然占用空间用于布局。

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

例如,如果视图在大多数时间不可见,那么将其变为GONE可能会更有效率,因为当需要调整屏幕上的其他视图时,系统不会不必要地测量和布置不可见的视图。

另一方面,如果视图频繁地在可见和不可见之间变化,则可能会从INVISIBLE获得更好的性能,因为您可能会避免每个转换上的额外度量/布局。

这是一个有趣的答案 。 我想知道和你一样的事情,答案是View.GONE消耗更多的内存,而不是简单地调用removeView(view)上的removeView(view) 。 但是, GONE视图比View.VISIBLE消耗更less的内存,因为它们不需要绘制。

内存量比较如下:

View.VISIBLE > View.GONE > removing the view from the container

我所做的是在不占用大量内存(如TextView)的parent.removeView(view)上使用parent.removeView(view) ,并在大量内存(如WebView)的parent.removeView(view)上使用parent.removeView(view) );