界面客户端用来创建、销毁和修改 View 的一组 View API 统称为View 系统。
查看
界面客户端通过与 Views 互动来管理 View,Sce 会代表他们维护所有 View,并将 View 组合成一个连贯的 View 树。
每个 View 都会定义一个二维坐标系;界面客户端会将图形内容嵌入到 View 的坐标系中,并根据该坐标系接收输入事件。
界面客户端若未先将图形内容嵌入到 View 中,则无法将其呈现到屏幕。
视口
界面客户端可以通过请求 View 创建一个名为 Viewport 的对象来将其他 View 嵌入到自己的 View 中;此 Viewport 会与其“托管”的给定 View 原生关联。
托管 View 可以(并且通常)由其他组件中的另一个界面客户端拥有。
查看树
使用 View 和 Viewports 界面客户端可以协同构建全球分布式内容树,以便系统为“景观图”分派内容进行渲染和查询,以进行命中测试。
这个全局 View 树称为 View Tree,景观树负责代表界面客户端对其进行维护。
由 Views 渲染的所有内容都封装在 View 中。传送至界面客户端的每个输入事件都是相对于该客户端拥有的 View 的。
查看要显示和输入的树关系
Score 会将 View 树的根 View 呈现给屏幕,这意味着根视图的尺寸与屏幕尺寸相同。
View 会根据其坐标系的大小和位置来划分 View 之间的显示空间。
View 的点击测试系统根据这种分区方式运行,以便界面客户端根据其 View 的大小和位置接收输入事件。
查看树状规则
- 不允许任何依赖循环。
- 每个 View 只能有一个其他 View 作为父视图。
- 每个视图只知道自己的坐标系。
- 每个视图都可以通过平移、旋转和缩放来控制托管的子视口的坐标系。