Skip to content

platform-view-demo ​

1. 实验目标 ​

用最小 Flutter + Android 实现验证 PlatformView(对应 docs/05-bridge-hybrid/04):

  • AndroidView 把原生 View 嵌入 Flutter 视图树
  • creationParams 通过 StandardMessageCodec 从 Flutter 传参给原生侧
  • 原生侧 PlatformViewFactory.create() 创建并返回 View(本例是 TextView)

2. 工程要点 ​

  • Flutter 侧:AndroidView(viewType: 'native-label-view', creationParams: {...})
  • Android 侧:flutterEngine.platformViewsController.registry.registerViewFactory(...) 在 configureFlutterEngine 里注册
  • creationParamsCodec: StandardMessageCodec 与原生 StandardMessageCodec.INSTANCE 配对
  • 真实场景扩展:地图(google_maps_flutter)、相机预览、WebView 都是 PlatformView

3. 运行方式 ​

bash
cd labs/flutter/host
flutter pub get
flutter run        # Android 设备/模拟器

入口:首页列表 → PlatformView 原生视图嵌入。

4. 预期现象 ​

  • 页面中部出现一个带浅蓝底色的原生 TextView(内容来自 Flutter 传参)
  • Logcat 打印 PlatformView created, id=...

5. 常见误区 ​

误区实际情况
PlatformView 是零成本嵌入混合渲染有合成开销(Android 走 TextureLayer / VirtualDisplay 两种模式)
creationParams 可以传任意对象必须能被 creationParamsCodec 序列化(标准类型或自定义 Codec)
iOS 和 Android 写法相同iOS 用 UiKitView,viewType 注册在 iOS 侧(本 demo 只做 Android)

6. 对应知识库文档 ​

7. 关键源码 ​

站点构建时间:2026/8/24 23:43:17