具有可见性的视图是否已设置为“已消失”测量和布局的一部分?

时间:2014-02-16 16:27:51

标签: android performance android-layout

我的根布局中有3个布局。这些布局中只有一个是“可见的”而休息2将“消失”。由于所有这些布局都很庞大,我担心:

  1. 在我向根xml充气后,所有3个布局都消耗内存吗?
  2. 每次视图组无效或请求布局时,是测量和绘制所有视图组,还是只显示“可见”视图组?
  3. 其他详细信息(如果需要) - 我正在实现一个聊天窗口,它有3个状态 - 展开,折叠和多个。此聊天窗口弹出窗口将位于我的应用程序中所有屏幕的底部,用户可以展开聊天。所有3个状态都不仅仅是imageview + textview,所以我选择了3种不同的布局(对于每个状态),并且一次只能看到其中一个。我不知道是否有更好的方法来实现这一目标。

1 个答案:

答案 0 :(得分:5)

1.-是的所有视图都会消耗内存,甚至GONE视图,唯一的区别是这些视图不会被测量或绘制,但它们仍可在View上使用,只需通过调用setVisibility即可显示,所以它们实际上是加载到内存中的,如果你需要一个在完成ViewStub

指定后才能完全加载的视图

2.-只是可见的,但GONE视图再次被加载到内存中而不是测量 - 如果您可能想知道INVISIBLE和GONE之间的区别,INVISIBLE将采用测量空间但不可见并且GONE不会占用那个空间......

希望它有帮助!

问候!