在 Windows 上调整 Flutter 桌面应用程序的大小

问题描述 投票:0回答:1

我正在为 MacOS 和 Windows 构建一个 flutter 桌面应用程序。我正在使用 windows_manager 包。 我无法在 Windows 上调整应用程序大小或最大化我的应用程序,而在 MacOS 上,相同的代码可以按预期工作。 我还给出了最小和最大窗口大小。

这背后的原因可能是什么?有人可以帮我吗?

代码:

Future<void> _setupDesktop() async {

  const minimumWindowSize = Size(1100, 800);
  await windowManager.ensureInitialized();

  WindowManager.instance.setMinimumSize(minimumWindowSize);
  WindowManager.instance
      .setMaximumSize(const Size(double.infinity, double.infinity));
  WindowOptions windowOptions = const WindowOptions(
    size: minimumWindowSize,
    center: true,
  );
  windowManager.waitUntilReadyToShow(windowOptions, () async {
    await windowManager.show();
    await windowManager.focus();
  });
}

flutter desktop-application
1个回答
0
投票

要解决此问题,我不必将窗口的最大尺寸设置为 double.infinity。 我删除了这一行

WindowManager.instance.setMaximumSize(const Size(double.infinity, double.infinity));

而且看起来效果很好。

原因(不确定,但这可能是):对 setMaximumSize 使用 double.infinity 会产生无限的大小限制,这可能会导致窗口不可调整大小,从而导致 Windows 上出现问题。 Windows 可能会将此大小解释为窗口处于最大状态,从而阻止任何大小调整。在 macOS 上,系统可能会更优雅地处理它,从而导致跨平台的不同行为。

© www.soinside.com 2019 - 2024. All rights reserved.