迁移 Windows 项目以确保窗口显示
Flutter 3.13 修复了一个可能导致窗口不显示的bug。使用 Flutter 3.7 或 Flutter 3.10 创建的 Windows 项目需要进行迁移才能解决此问题。
迁移步骤
#使用 flutter --version
验证您是否使用的是 Flutter 3.13 或更高版本。如果需要,使用 flutter upgrade
更新到最新版本的 Flutter SDK。
未修改 windows/runner/flutter_window.cpp
文件的项目将由 flutter run
或 flutter build windows
自动迁移。
已修改 windows/runner/flutter_window.cpp
文件的项目可能需要手动迁移。
迁移前代码
cpp
flutter_controller_->engine()->SetNextFrameCallback([&]() {
this->Show();
});
迁移后代码
cpp
flutter_controller_->engine()->SetNextFrameCallback([&]() {
this->Show();
});
// Flutter can complete the first frame before the "show window" callback is
// registered. The following call ensures a frame is pending to ensure the
// window is shown. It is a no-op if the first frame hasn't completed yet.
flutter_controller_->ForceRedraw();
示例
#PR 995 展示了 Flutter Gallery 应用的迁移工作。
除非另有说明,否则本网站上的文档反映了 Flutter 的最新稳定版本。页面最后更新于 2024-04-04。 查看源代码 或 报告问题.