android - 可见性设置为 "gone"的 View 是否是测量和布局过程的一部分?

标签 android performance android-layout

我的根布局中有 3 个布局。这些布局中只有一个是“可见的”,其余 2 个将“消失”。由于所有这些布局都很笨重,我很担心:

  1. 在我扩充根 xml 后,所有 3 种布局都消耗内存吗?
  2. 每次 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/

相关文章:

Android:相机预览的屏幕方向/旋转

r - 当使用 --enable-R-profiling 和 --enable-memory-profiling 编译 R 但不同时使用两者时,我会损失多少性能?

sql - 我应该在哪些列上创建索引

MySQL LOAD DATA IN FILE 更新单列

java - 无法在 ConstraintLayout 中定位 TextView

java - 动态添加的 RemoteView 的布局权重

android - 扩展 View 组

android - 我应该为我的库和应用程序使用什么编译器标志以获得最佳性能 NDK (CMake)

android - 如何找到创建字节数组的源

android - 为什么我的 OpenGL fragment 在更新时停止重绘?