PixelUI Architecture / 架构概览

这页不讲每个类的所有成员,只给出最重要的心智模型。

PixelUI architecture overview

提供给UI时间更新和输入事件,renderer() 在中间统一推进 manager 并合成画面。最下方展示了输入优先级:某一层消耗事件后,不再继续传递。

PixelUI

PixelUI 是统一入口,持有或连接:

  • U8g2 显示对象;
  • UiDeadlineScheduler,以及注册到它的离散时间状态;
  • AnimationManagerPopupManager
  • ViewManagerCoroutineSchedulerFocusManager
  • 平台刷新、渲染唤醒和输入回调;
  • 内部毫秒时间和 fade 状态。

时间更新

时间先进入 PixelUI,process() 推进到期状态并标记 dirty,renderer() 再合成需要的帧。除 tickFromISR() 外,PixelUI API 都属于同一 UI task。完整规则见事件驱动渲染

输入优先级

  1. PixelUI 的 FocusManager 先处理 Widget 导航与 active Widget。
  2. ViewManager 安装的输入路由再把事件交给 active Popup。
  3. Popup 不存在时,交给页面栈顶 App。
  4. 页面 transition 正在提交时,输入被拒绝。

这个顺序避免每个 App 自己重复写 Popup/Focus 的抢占逻辑。

绘制层次

renderer() 先画当前 IDrawable(通常是栈顶 App),然后画 Popup,最后画 Focus cursor。fade 是 PixelUI 的页面级过渡,完成后 ViewManager 才会让等待中的新 App 进入 onEnter()

最新文章
网站信息
文章数目 :
1
本站访客数 :
本站总浏览量 :
最后更新时间 :