我认为它仍然来自 XML 文件,因为对象已经提前创建,但我承认原因可能不同。
如果是这样,你能帮我解决这个问题吗?
作为比较的参考,我考虑到您需要以列出的方式制作 2 个屏幕的那一刻,但要让它们显示相同的内容。
在什么情况下使用这个或那个方法并不重要,我只需要知道比较速度。
我认为它仍然来自 XML 文件,因为对象已经提前创建,但我承认原因可能不同。
如果是这样,你能帮我解决这个问题吗?
作为比较的参考,我考虑到您需要以列出的方式制作 2 个屏幕的那一刻,但要让它们显示相同的内容。
在什么情况下使用这个或那个方法并不重要,我只需要知道比较速度。
首先,当从 xml 实例化一个层时,
LayoutInflater它不会解析 xml,因为 它们不在最终版本中。据我记得,在构建 .apk 时,这些资源被转换为二进制格式(并且它的读取/解析速度比常规 xml 更快)。是的,然后它们被读取,但整个事情发生在本机代码中,这在性能方面通常是一分钱。其次,当从 xml 创建视图时,它
LayoutInflater使用带有两个参数的构造函数,其中一个是AttributeSet. 在同一个地方,方法如.setText(...),.setBackground(...)。当你从代码创建视图时,你自己用句柄调用这些方法,此外,它们也在构造函数中被调用。也就是说,当以编程方式创建时,某些方法会被调用两次。TL;DR:速度差太小。
谈到用代码或使用xml创建元素时,他们通常总是谈论开发的便利性。使用 xml 更加方便快捷。特别是当团队中有很多人时。