设置桌面 Flutter 在启动时以最大尺寸运行

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

如何在桌面平台(Windows、macOS、Linux)中将 Flutter 桌面应用程序的初始大小设置为最大化?

我知道有窗口大小插件,我们可以手动设置大小,但是有没有简单的方法,例如

Window.startupSize=WindowSize.Maximized

Flutter 社区有老问题(https://github.com/flutter/flutter/issues/39556)但我想知道最新更新是什么?

flutter window
4个回答
4
投票

我也在研究这个。有更新吗?

我目前正在使用这个: https://pub.dev/packages/desktop_window

但是我希望Flutter能够原生支持这个..


3
投票

为了将来仍然面临此问题的任何人参考,您可以在文件中找到此代码:

windows/runner/win32_window.cpp

bool Win32Window::Show() {
   return ShowWindow(window_handle_, SW_MAXIMIZE);
}

在第 152 行,您可以将 SW_MAXIMIZE 替换为 SW_MAXIMIZE


1
投票

它是特定于平台的,但在 Windows 上无需插件即可完成。 您必须修改文件“windows unner\win32_window.cpp”。在 CreateWindow() 函数中,您必须添加“WS_MAXIMIZE”选项。仅此而已。

示例:

    HWND window = CreateWindow(
        window_class, title.c_str(), 
        WS_OVERLAPPEDWINDOW | WS_VISIBLE | WS_MAXIMIZE,
        Scale(origin.x, scale_factor), Scale(origin.y, scale_factor),
        Scale(size.width, scale_factor), Scale(size.height, scale_factor),
        nullptr, nullptr, GetModuleHandle(nullptr), this);

0
投票

我的解决方案:

1。用于发布(编辑 win32_window.cpp)。

找到:

bool Win32Window::Show() {
  return ShowWindow(window_handle_, SW_SHOWNORMAL);
}

更改为:

bool Win32Window::Show() {
  return ShowWindow(window_handle_, SW_SHOWMAXIMIZED);
}

2。用于调试(编辑 main.cpp)。

找到:

Win32Window::Point origin(10, 10);
Win32Window::Size size(1280, 720);

更改为:

Win32Window::Point origin(0, 0);
Win32Window::Size size(GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN));
© www.soinside.com 2019 - 2024. All rights reserved.