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

Jag*_*uar 1 performance android android-layout

我的根布局中有3个布局.这些布局中只有一个是"可见的"而休息2将"消失".由于所有这些布局都很笨重,我担心:

  1. 在我对根xml进行充气后,所有3种布局都会消耗内存吗?
  2. 每次视图组无效或请求布局时,是测量和绘制所有视图组,还是只显示"可见"视图组?

其他细节(如果需要) - 我正在实现一个聊天窗口,它有3个状态 - 扩展,折叠和多个.此聊天窗口弹出窗口将位于我的应用程序中所有屏幕的底部,用户可以展开聊天.所有3个状态都不仅仅是imageview + textview,所以我选择了3种不同的布局(对于每个状态),并且一次只能看到其中一个.我不知道是否有更好的方法来实现这一目标.

Mar*_*res 6

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

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

希望能帮助到你!

问候!