SuperAPI AI 工具集

flutter-embedding-native-views

前端与建站

查看项目

更新于 10-16 05:50

技能介绍

用途:在 Flutter 应用中嵌入 Android、iOS、macOS 原生视图(Platform Views),适合集成地图、WebView 等复杂原生组件;同时支持把 Flutter 嵌入现有 Web 应用。

主要能力:Android(API 23+)可选 Hybrid Composition(性能与保真度最佳,但降低整体 FPS,部分 Flutter 变换失效)或 Texture Layer(Flutter 渲染性能最佳,变换正常,但快速滚动可能卡顿,SurfaceView 影响无障碍,文字放大镜需 TextureView)。iOS 仅用 Hybrid Composition,不支持 ShaderMask 与 ColorFiltered,BackdropFilter 有合成限制;macOS 用 Hybrid Composition(NSView),当前版本功能不完整(如手势不可用)。复杂 Dart 动画期间可用原生视图截图作为占位纹理缓解性能下降。Web 嵌入支持整页模式与嵌入式多视图模式(需 multiViewEnabled: true)。

使用方式:Android 需实现 Dart widget(Hybrid 用 PlatformViewLink、AndroidViewSurface、PlatformViewsService.initSurfaceAndroidView;Texture Layer 用 AndroidView),实现 PlatformView 与 PlatformViewFactory,并在 MainActivity.kt 注册;若用 SurfaceView/SurfaceTexture 需手动调用 invalidate。iOS 用 UiKitView,实现 FlutterPlatformView 与 FlutterPlatformViewFactory,在 AppDelegate.swift 或插件注册器注册。Web 在 flutter_bootstrap.js 启用多视图,用 app.addView()/app.removeView() 管理视图,Dart 侧以 runWidget 替代 runApp,并用 ViewCollection 与 View 渲染。

限制:各平台合成模式存在上述渲染与性能限制;macOS 支持不完整;Web 多视图需处理 CSS 冲突与视图约束。