You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Flutter实现Windows端原生闪屏(启动页)

Flutter Windows端原生闪屏实现方案

本方案为Windows原生C++实现,完全在Flutter引擎加载前生效,可解决启动阶段白屏问题,不涉及任何Dart层面代码修改,符合原生实现要求。

实现原理

Flutter Windows应用启动时的白屏出现在「Win32窗口初始化完成」到「Flutter引擎渲染出第一帧」的时间间隙,我们只需要在这个间隙用Windows原生API渲染自定义闪屏内容,等Flutter第一帧就绪后再切换到Flutter渲染内容即可。

具体实现步骤

  • 准备闪屏资源
    将闪屏图片转为BMP格式存入项目windows/runner/resources目录,无需额外引入第三方库即可用原生GDI接口加载。
  • 引入原生绘制依赖
    打开windows/runner/main.cpp文件,在头部引入GDI+依赖:
    #include <gdiplus.h>
    #pragma comment (lib,"Gdiplus.lib")
    
  • 创建闪屏渲染逻辑
    在主窗口初始化完成后、Flutter引擎实例创建前,新增闪屏窗口渲染逻辑,给窗口绘制提前准备好的闪屏图片,可根据需求调整是否隐藏标题栏、设置窗口居中显示等属性。
  • 监听Flutter首帧事件销毁闪屏
    打开windows/runner/flutter_window.cpp,找到OnFrameAvailable回调方法,在该方法触发时发送窗口消息销毁闪屏元素,切换为Flutter渲染内容,此时过渡无感知,不会出现白屏。

可选优化

  • 可在闪屏阶段用原生定时器实现加载动画、进度提示等效果,所有逻辑均在Windows原生层完成
  • 可配置闪屏窗口与后续Flutter主窗口的尺寸、位置完全一致,实现无跳变的无缝过渡效果

内容的提问来源于stack exchange,提问作者OroshiX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 19:24:03