美文网首页
LayoutInflater与AsyncLayoutInflat

LayoutInflater与AsyncLayoutInflat

作者: 落后程序员 | 来源:发表于2019-12-22 21:20 被阅读0次

    LayoutInflater创建View的过程

    1.通过XML的Pull解析方式获取View的标签(这个在主线程是耗时的)

    2.通过标签以反射的方式来创建View对象(反射是比new对象是耗性能的)

    3.如果是ViewGroup的话则会对子View遍历并重复以上步骤,然后add到父View中(遍历递归存在栈溢出,暂时没遇见过)

    4.在AppCompatActivity里面实现setFactory把TextView转为AppCompatTextView,ImageView转AppCompatImageView等等

    5.另外实现动态换肤离不开LayoutInflater与Factory(Factory2)

    AsyncLayoutInflater创建View的过程

    1.在子线程进行xml文件解析方式获取view的标签

    2.it does not support inflating layouts that contain fragments.意思说暂时不支持加载包含Fragment的layout

    3.没有setFactory方法,就不支持TextView转为AppCompatTextView,会丢失AppCompatActivity的一些特性,不适合用

    结论除了支持在子线程加载布局,好像这个AsyncLayoutInflater很鸡肋,没什么特别用处

    参考

    Android AsyncLayoutInflater 限制及改进

    相关文章

      网友评论

          本文标题:LayoutInflater与AsyncLayoutInflat

          本文链接:https://www.haomeiwen.com/subject/wxhanctx.html