美文网首页
Android View绘制流程

Android View绘制流程

作者: 简书不简单iiii | 来源:发表于2020-03-12 13:48 被阅读0次

    从根布局的performTraversals()方法开始,Traversal的意思就是遍历,也就是会从上到下遍历整个view树,每个view都有绘制方法绘制自己,viewgroup绘制自己的同时还要负责通知自己子view的绘制

    绘制方法:measure--->layou----->draw

    measure:

        在ViewGroup中的measureChildren()方法中会遍历测量ViewGroup中所有的View,当View的可见性处于GONE状态时,不对其进行测量

        自定义View时手动处理wrap_content时的情形

        直接继承View的控件需要重写onMeasure方法并设置wrap_content时的自身大小,否则在布局中使        用    wrap_content就相当于使用match_parent。此时,可以在wrap_content的情况下(对应MeasureSpec.AT_MOST)指定内部宽/高(mWidth和mHeight)。

        在activity中获取view高度

        view.post()

    layout:

        会通过setFrame方法来设定View的四个顶点的位置,即View在父容器中的位置。然后,会执行到onLayout空方法,子类如果是ViewGroup类型,则重写这个方法,实现ViewGroup中所有View控件布局流程。

    相关文章

      网友评论

          本文标题:Android View绘制流程

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