PlatformView 同层渲染方案适配切换指导
PlatformView 同层渲染方案适配切换指导
PlatformView 旧方案
简述
在 Flutter 适配层定义 DynamicView 和 DVModel
复制代码
开发者使用 json 字符串来定义生成 DVModel 模型,实现 PlatformView 的定义,将 FlutterView 置于底层,DynamicView 实现的 PlatformView 置于顶层,DynamicView 使用 ArkUI 实现,所以是通过鸿蒙的原生渲染的。
复制代码
Flutter 页面嵌入 PlatformView 时会有下面两个严重缺陷:
1. PlatformView 覆盖在 FlutterView 上面出现遮挡问题
2. 页面切换时,FlutterView 和 PlatformView 动画不一致
PlatformView 新方案
简述
采用 NodeContainer 同层渲染功能,将原生平台组件的纹理导出注册到 Flutter Engine,由 Flutter 统一渲染。可以解决旧方案的固有缺陷,并且 PlatformView 使用自定义 ArkUI 的 Component 组件,符合鸿蒙原生应用开发习惯,不用按照 DVModel 来定义,同时避免写 json 没有代码提示的困扰。
复制代码
新旧方案实现关键区别:
旧方案:
复制代码
新方案:
复制代码
评论