【问题标题】:Performance of XML file and LayoutInflater vs Creating view from codeXML 文件和 LayoutInflater 的性能与从代码创建视图
【发布时间】:2013-10-13 21:53:57
【问题描述】:
我需要在我的应用程序的 LinearLayout 中动态更改子视图(删除它们然后添加不同的视图)。
我可以通过代码创建所有视图,也可以使用 LayoutInflater,然后设置我需要更改的字段。
两者在速度和内存使用方面有区别吗?
我添加的任何布局都最多有 10 个视图,通常少于 5 个。而且我不关心编码的复杂性,只关心性能。
【问题讨论】:
标签:
android
performance
view
layout-inflater
【解决方案1】:
两者在速度和内存使用方面有区别吗?
不显着。在微基准级别上,膨胀布局肯定比手动操作要慢。但是,您不会尝试每秒执行数百次(我希望如此),因此速度差异可以忽略不计。
当然,更快的是不是“删除它们然后添加不同的”,而是更改已创建小部件的可见性。
【解决方案2】:
我不明白为什么在一种情况下按代码添加视图不会提高性能。你实现了数组适配器真正做的事情。
也就是说,一开始只创建两个或三个视图。仅可见视图。然后,开始移动它们并更改信息。显示在“滚动”上。否则适配器会更好,因为它不会一次为所有项目创建所有图形。