【发布时间】:2017-04-26 12:08:22
【问题描述】:
我创建了一个非常大的布局(大约 2000 行),其中包含大量视图和子布局,通常带有加权度量。这棵树非常复杂,可以嵌套 8 层或更多层。 为了创建不同的“视角”,该应用程序以编程方式将一些视图的可见性设置为 View.GONE,特别是那些位于我不想显示的视图树头的视图,在不同的时刻应用程序生命周期,有时会更改权重以调整视图大小;因此,显示给用户的最终布局每次包含的视图和视图树不超过主布局中的 1/3。
我不关心“切换”时的性能,所以当用户从一个视角切换到另一个视角时,我有足够的时间来打开和关闭可见性,这不是问题。
相反,将这么多视图和视图树设置为 View.GONE 会影响运行时的性能吗?与显示所有视图的较小布局(可能以编程方式膨胀)相比,GONE 视图对 CPU 和内存性能有何影响?
【问题讨论】:
-
它会影响性能,尤其是低规格设备。如果您必须像您所说的那样创建繁重的布局,请使用约束布局。它比相对布局更灵活。
-
约束布局可能会略有改进,但我认为真正的问题可能是其父级设置为 GONE 的视图树:它们是如何被处理的,就像死对象一样,或者它们仍然是“还活着吗?
-
我认为 GONE 布局仍然有影响。你不能为此制作不同的片段吗?
标签: android performance android-layout layout