news 2026/10/10 10:56:53

第136篇View 绘制流程:measure、layout、draw 三部曲

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第136篇View 绘制流程:measure、layout、draw 三部曲

先把结论放在前面:一次 View 的完整绘制要过三关——measure(定大小)、layout(定位置)、draw(画像素),由ViewRootImpl驱动,Choreographer决定时机。三个必须张口就来的判定:requestLayout走三关全流程、invalidate只走 draw 一关、postInvalidate支持子线程。这三句话答完,后面所有细节都是挂在这条主线上的。

View 绘制流程看起来简单,追问起来全是细节。这篇把它掰开揉碎,从概念到坑点过一遍。

一次帧的完整时间线

从手指抬起(或动画推进)到像素上屏,顺序是这样的:

Choreographer.doFrame() ├─ performTraversals() // ViewRootImpl 内部 │ ├─ requestLayout() 被标记?→ 走 measure + layout │ ├─ 计算下一帧目标时间(vsync 对齐) │ └─ scheduleTraversals() → 下一帧执行 │ ├─ performMeasure() // 三关之一:定大小 ├─ performLayout() // 三关之二:定位置 └─ performDraw()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/10 10:55:33

数码配件兼容性咨询太头疼?我用AI客服扛住了80%的售后问题

1. 数码配件客服的兼容性困局:为什么这个问题这么难缠做数码配件这行的人都有一个共同体会:售后咨询里至少有六成跟“兼容不兼容”有关。一根Type-C线、一个充电头、一块扩展坞、一副蓝牙耳机,客户下单前问的是“能不能用在我的设备上”&…

作者头像 李华
网站建设 2026/10/10 10:55:24

Wireshark抓包实战指南:从安装到过滤分析的完整教程

Wireshark这工具我用了差不多十年,从当年在机房排查交换机续传问题,到后来帮朋友看路由器DNS劫持,靠的基本都是它。说实话,抓包和过滤是Wireshark最核心的两个能力,但绝大多数人卡在第一关:装好了不会用&am…

作者头像 李华
网站建设 2026/10/10 10:54:43

英语礼物口语全攻略:从递出到回应,告别社交尴尬

1. 为什么“礼物”相关口语值得单独学,而不只是背几个单词我平时上课常被人问一个问题:礼物不就是 gift 和 present 吗,从小就会,还需要单独拎出来学?问出这句话的人,多半都还没真正在英语环境里送过礼。英…

作者头像 李华
网站建设 2026/10/10 10:54:42

基础知识总结方法论:把学过变成会用,构建个人知识管理系统

基础知识总结:把"学过"变成"会用"的完整方法论很多人以为基础知识总结就是抄笔记、画思维导图、把教科书目录誊写一遍。我见过太多人花几百个小时整理出精致无比的知识手册,落笔的瞬间信心满满,一周之后打开同一份文档却…

作者头像 李华
网站建设 2026/10/10 10:54:08

QML Transform变换实战:从Rotation轴旋转到卡片翻转动画与踩坑指南

做 QML 动画做了大半年,我一度觉得rotation和scale两个属性就是 Item 变换的全部。直到某次原型里需要一个卡片翻转菜单——点击一张卡,它要绕着纵轴转 180 度露出背面——用内置rotation硬做才发现压根转不出来:内置旋转只能绕 Z 轴&#xf…

作者头像 李华
网站建设 2026/10/10 10:53:27

AI重构程序员行业:从编码执行者到系统决策者

这几年我听到最多的一个词就是“焦虑”,但说实话,程序员这个行业的焦虑从来都不是新鲜事。从移动互联网到大数据,再到区块链和元宇宙,每隔几年就有一波“狼来了”的论调。但是当我仔细审视2024年之后的行业现状,我越来…

作者头像 李华