measure,layuout,draw。这三大流程由ViewRoot通过调用performTranversals发起。
measure:系统根据父View的MeaureSpec和View的layoutparams计算出View的MeasureSpec,通过meaure方法参数传递给View使用。measure方法调用onMesure通过传参将MeasureSpec传递给onMeasure方法。View包括ViewGroup可以通过重写onMeasure实现自定义的测量。当测量完毕,通过setMeasuredDimension,将自定义测量的宽高设置给View。
layout: 系统计算出子View在父View中的left,top,right,bottom,通过layout方法将定点的值传入。在layout中通过setFrame设置View在父View中的位置。如果View是ViewGroup的话,还会调用onLayout,在onLayout中通过对setchildframe的调用实现对子View的layout的发起。
draw: 这个流程做了很多事情,简单来讲就是 1.绘制背景 2.保留涂层 3.绘制当前View的内容 4.唤起子View的draw过程 5.绘制阴影,恢复图层 6.绘制边饰。这里涉及到一个优化的点:WillNotDraw字段。
【#|View的三大流程是什么,加以简单说明】这些只是空洞的概念,如果你想要有深刻点的认识所谓三大流程到底有什么作用,点击这里https://blog.csdn.net/a15998126054/article/details/105472697。这篇文章通过回答onmeasure,onlayout,ondraw如何使用,让你有更细节化的认知。
推荐阅读
- 数据结构和算法|LeetCode 的正确使用方式
- #|7.分布式事务管理
- #|算法设计与分析(Java实现)——贪心算法(集合覆盖案例)
- #|算法设计与分析(Java实现)—— 动态规划 (0-1 背包问题)
- #|阿尔法点亮LED灯(一)汇编语言
- #|Multimedia
- #|ARM裸机开发(汇编LED灯实验(I.MX6UL芯片))
- 基础课|使用深度优先搜索(DFS)、广度优先搜索(BFS)、A* 搜索算法求解 (n^2 -1) 数码难题,耗时与内存占用(时空复杂度)对比(附((n^2 - 1) 数码问题控
- #|学习笔记 | Ch05 Pandas数据清洗 —— 缺失值、重复值、异常值
- win10|搏一搏 单车变摩托,是时候捣鼓一下家中的小米电视机啦。