视图系统

View-System 之 架构设计、坐标系统、排版渲染、滑动冲突、数据驱动

  • 前言

  • 死记硬背时期 的混沌世界

  • 深度思考眼中 的自定义视图

    • 对现存自定义视图的学习

    • 对视图标准化 API 的学习

  • 综上

  • Note 2020.07.07 加餐:

    • 重学安卓 开源库 内部共享计划

  • Note 2021.08.15 加餐:

    • 从 0 到 1 “自定义视图” 完整爬坑顺序

  • 前言

  • 授人以鱼,不如授人以渔

  • 作为 年复一年 的滑动冲突

  • 为什么存在 滑动 的设计?

  • 为什么 首页和详情 要如此设计?

  • 所以 为什么存在 滑动冲突?

  • 那么 如何解决 这些问题?

  • 综上

  • 前言

  • 作为 13 年前才面市的新型用户体验

    • First of all

    • Secondly

    • And then

    • However

  • So

    • 视图系统的坐标系 为何如此设计?

    • 视图坐标 为何如此设计?

    • 为什么能做到 惯性滑动?

    • 惯性滑动的测量值 为何如此设计?

    • 为什么能做到 位移?

    • 事件分发 为何要如此设计?

  • 综上

  • 前言

  • 为什么要反思 视图系统

  • 作为差强人意的 Android 视图系统

  • 视图系统 为什么要基于 C/S 架构

  • 一睹 视图接口 和 视图服务 的抽象

  • 当下 Android 视图系统 的怪状

  • 综上

  • Note 2020.1.29 加餐:

    • 是让人 过目难忘 的 Android GUI 族谱解析

  • 前言

  • Android GUI 系统仍在困扰着 80% 的进阶者

  • 是一分为二的理解方式

    • 谁才是可视化排版的根基?

    • View 和 Drawable 不过是排版的模板

    • Layout 和 Inflater 不过是后来者

    • include,merge,ViewStub 是解药的解药

  • 作为承上启下的小结

    • 上文的 "Window" 为何一直加个双引号?

    • ViewRootImpl 是怎么帮 Canvas 与窗口对应上的?

    • 是对症下药的 排版渲染 性能优化指南

    • PhoneWindow 本质 及 事件分发的内幕

  • 综上

  • 前言

  • 声明式 UI 的由来

  • 声明式 UI 的本质是 “函数式编程”

    • “纯函数” 是 “函数式编程” 的基石

    • “函数式编程” 引入前的混沌世界

    • “函数式编程” 为什么能 “彻底” 解决这类问题?

    • 引入 “函数式编程” 后的世界

  • 所以为什么会有 “数据驱动 UI 框架”?

    • 声明式 UI 的运作流程是怎样的?

    • 数据驱动 难以替代的好处

  • 函数式编程的局限

  • Note 2020.07.27 加餐:

  • 现有条件下解决 “视图调用一致性问题” 的最优解

    • 1.Java + DataBinding 严格模式

    • 2.Kotlin + ViewBinding

    • 3.Kotlin DSL 动态布局

  • Note 2020.07.31 加餐:

    • 通过 “函数式编程思想” 秒懂 Compose 流程机制

  • 综上

最后更新于