我的根布局中有 3 个布局。这些布局中只有一个是“可见的”,其余 2 个将“消失”。由于所有这些布局都很笨重,我很担心:
- 在我扩充根 xml 后,所有 3 种布局都消耗内存吗?
- 每次 View 组无效或请求布局时,是否测量和绘制所有 View 组,还是仅测量和绘制“可见” View 组?
其他详细信息(如果需要)- 我正在实现一个具有 3 种状态的聊天窗口 - 展开、折叠和多个。这个聊天窗口弹出窗口将位于我应用程序所有屏幕的底部,用户可以展开聊天。所有 3 种状态都比 imageview + textview 多得多,所以我选择了 3 种不同的布局(针对每种状态),并且一次只能看到其中一种。我不知道是否有更好的方法来实现这一目标。
最佳答案
1.- 是的,你所有的 View 都会消耗内存,甚至是 GONE View ,唯一的区别是这些 View 不会被测量或绘制,但它们仍然可以在 View 上使用,并准备好通过调用 setVisibility 来显示,所以它们实际上被加载到内存中,如果您需要一个在指定之前不会完全加载的 View ,请查看 ViewStub
2.- 只是可见的,但再一次,GONE View 加载到内存中,而不是 Measured-Drawn,如果您可能想知道 INVISIBLE 和 GONE 之间的区别,INVISIBLE 将占用测量空间但不可见GONE 不会占用那个空间...
希望对您有所帮助!
问候!
关于android - 可见性设置为 "gone"的 View 是否是测量和布局过程的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21813981/