美文网首页
View工作原理

View工作原理

作者: carlwu_186 | 来源:发表于2022-06-11 16:36 被阅读0次
  • ViewRoot对应ViewRootImpl类,它是连接WindowManager和DecorView的纽带,View的三大流程均是通过ViewRoot来完成的。

  • DecorView作为顶级View,一般情况下它内部会包含一个竖直方向的LinearLayout,在这个LinearLayout里面有上下两个部分,上面是标题栏,下面是内容栏。在Activity中我们通过setContentView所设置的布局文件其实就是被加到内容栏之中的。DecorView其实是一个FrameLayout,View层的事件都先经过DecorView,然后才传递给我们的View。

  • MeasureSpec代表一个32位的int值,高2位代表SpecMode,低30位代表SpecSize,SpecMode是指测量模式,而SpecSize是指在某种测量模式下的规格大小。这样可以避免过多的内存分配。
    SpecMode有三类:

    • UNSPECIFIED
      父容器不对View有任何限制。
    • EXACTLY
      父容器已经检测出View所需要的精确大小,这个时候View的最终大小就是SpecSize所指定的值,它对应于LayoutParams中的match_parent和具体的数值两种模式。
    • AT_MOST
      父容器指定了一个大小即SpecSize,View的大小不能大于这个值,它对应于LayoutParams中的wrap_content。
  • LayoutParams需要和父容器一起才能决定View的MeasureSpec,从而进一步决定View的宽高。

  • 获取View的宽高

    • view.post(runnable)
    • ViewTreeObserver
  • 自定义View尽量不要在View中使用Handler,没必要。

  • View中如果有线程或者动画,需要及时停止,参考View#onDetachedFromWindow。

post的原理

View.post() 时,其实内部它自己分了两种情况处理,当 View 还没有 attachedToWindow 时,通过 View.post(Runnable) 传进来的 Runnable 操作都先被缓存在 HandlerActionQueue,然后等 View 的 dispatchAttachedToWindow() 被调用时,就通过 mAttachInfo.mHandler 来执行这些被缓存起来的 Runnable 操作。从这以后到 View 被 detachedFromWindow 这段期间,如果再次调用 View.post(Runnable) 的话,那么这些 Runnable 不用再缓存了,而是直接交给 mAttachInfo.mHanlder 来执行。

相关文章

  • View 的测量

    接着上篇 View 基础 来讲 View 的工作原理,View 的工作原理中最重要的就是测量、布局、绘制三大过程,...

  • 【Android】自定义ViewGroup

    关于View的工作原理、绘制流程等,在第4章 View的工作原理[https://www.jianshu.com/...

  • View 工作原理

    1、 ViewRoot 和 DecorView 介绍 ViewRoot 对应于 ViewRootImpl 类,它...

  • View工作原理

    参考书籍:Android开发艺术探索注:京东链接https://item.jd.com/11760209.html...

  • View工作原理

    View工作原理 首先先来说明一下要掌握的知识 View绘制工作整体流程 Measure Layout Draw ...

  • View工作原理

    1、起步分析 在Activity启动分析中 知道,Activity的创建是在ActivityThread.perf...

  • View工作原理

  • View工作原理

    view有三大工作流程:测量、布局、绘制,分别对应着方法mesure、layout、draw ViewRoot和D...

  • View工作原理

    ViewRoot对应ViewRootImpl类,它是连接WindowManager和DecorView的纽带,Vi...

  • Android知识点基础篇(二)

    索引:Binder机制,共享内存实现原理ActivityThread工作原理嵌套滑动实现原理View的绘制原理,自...

网友评论

      本文标题:View工作原理

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