Litho
  • Introduction
  • 简介
    • Litho 是什么
    • 动机
    • 使用
  • 快速开始
    • 新手入门
    • 教程
    • 编写 Component
    • 使用 Component
  • 参考
    • Layout Specs
    • Mount Specs
    • Props
    • State
    • Layout
    • Error Boundaries
    • Borders
    • RecyclerCollectionComponent
    • 变换动画
    • 术语
  • 事件处理
    • 总览
    • 触摸处理
    • 可见性处理
  • Sections
    • Sections 是什么
    • Sections 教程
    • GroupSection Specs
    • DiffSection Specs
    • Sections Building Blocks
    • 与UI交互
    • Sections 单元测试
    • Sections 与 Views
    • Services
    • Sections 架构
    • Working Ranges
  • 兼容性
    • Styles
    • Accessbility
    • RTL
  • 测试
    • 总览
    • 单元测试基础
    • 子组件测试
    • 匹配 Props
    • 测试 InjectProps
    • 测试事件处理
    • Espresso
    • 在Android Studio上运行测试
  • 高级指南
    • Recycler
    • 自定义布局
    • TreeProps
    • 增量安装
    • 创建 ComponentTree
  • 架构
    • 代码生成
    • 异步布局
    • 增量安装
    • 铺平 View 结构
    • 回收
  • 附加资源
    • 最佳实践
    • FAQ
  • 工具
    • 调试
    • 开发者选项
  • 更多参与
    • 如何参与
    • 社区展示
    • 资源库结构
Powered by GitBook
On this page
  1. 架构

铺平 View 结构

Previous增量安装Next回收

Last updated 7 years ago

让我们来看看下面例子中的布局。它包含一个图像,一个标题和副标题。使用传统的 Android 视图系统,您可以查看所有这些元素,并将其包含在几个View Group 中对这些元素进行排列。

铺平 View 结构

Litho 会自动减少最终用户界面层次结构中的视图数量。布局计算步骤产生的布局树只是 UI 的图纸,不会与 Android 视图直接耦合。这允许框架在挂接组件之前处理布局树以获得最佳的渲染性能。 我们以两种方式来做到这一点。

首先,Litho 可以在布局计算后完全跳过容器,因为它们不会在挂载步骤中用到。在我们的例子中,挂载时将不会有一个包含标题和副标题的 View Group。

其次,Litho 可以挂载 View 或 Drawable 。事实上,框架中的大多数核心小部件(例如Text和Image)都挂载成Drawable对象,而不是 View 。

这些优化的结果,示例中UI的组件实际上将呈现为单一的完全平坦的视图。您可以在以下屏幕截图中看到这一点,并。

铺平 View 结构

虽然平坦的视图结构对内存使用和绘图时间有重要的好处,但它们并非万能的灵丹妙药。Litho 有一个非常通用的系统来自动“ unflatten(堆叠起来) ” 已挂载组件的层次结构,当使用 Android View 里一些不可或缺的功能,如触摸事件的处理,无障碍功能,或限制失效等。例如,如果要在示例中启用单击图像或文本,则框架会自动将它们包装在视图中,前提是它们具有。

启用显示布局边界开发者选项
点击处理程序