更好地在Android中扩充或实例化控件?

更好地在Android中扩充或实例化控件?,第1张

概述我想知道是否有人能够对动态创建控件(inflate vs instantiate)的最佳实践有所了解. 膨胀: TextView styledText = (TextView)inflater.inflate(R.layout.styledTextView); 实例: TextView styledText = new TextView(mContext);styledText.setTextA 我想知道是否有人能够对动态创建控件(inflate vs instantiate)的最佳实践有所了解.

膨胀:

TextVIEw styledText = (TextVIEw)inflater.inflate(R.layout.styledTextVIEw);

实例:

TextVIEw styledText = new TextVIEw(mContext);styledText.setTextAppearance(R.style.StyledTextStyle);

正在创建的对象可以包含膨胀的XML文件中的属性,也可以包含在随后添加到实例化对象的样式定义中. (假设此样式包括宽度,背景,文本颜色等).

无法对每种方法进行任何时间/内存测试,想知道是否有人知道哪种方法最快/最有效.

解决方法 LayoutInflator的开销很小,因为它必须解析xml才能构建对象.由于同样的原因,它也会暂时占用更多内存.除此之外,它以与您无论如何相同的方式构建VIEw对象.如果你出于某种原因每秒呼叫数百次,可能需要担心. 99.9%的时间虽然你永远不会知道差异.

另外需要注意的是,任何接受像“setTextAppearance”这样的xml资源的方法都会有相同的xml解析开销.您提供的示例中唯一的区别是它不解析TextVIEw xml,但它仍然需要解析样式属性.

总结

以上是内存溢出为你收集整理的更好地在Android中扩充或实例化控件?全部内容,希望文章能够帮你解决更好地在Android中扩充或实例化控件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1131052.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存