如何在桌面平台(Windows、macOS、Linux)中将 Flutter 桌面应用程序的初始大小设置为最大化?
我知道有窗口大小插件,我们可以手动设置大小,但是有没有简单的方法,例如
Window.startupSize=WindowSize.Maximized
Flutter 社区有老问题(https://github.com/flutter/flutter/issues/39556)但我想知道最新更新是什么?
为了将来仍然面临此问题的任何人参考,您可以在文件中找到此代码:
windows/runner/win32_window.cpp
bool Win32Window::Show() {
return ShowWindow(window_handle_, SW_MAXIMIZE);
}
在第 152 行,您可以将 SW_MAXIMIZE 替换为 SW_MAXIMIZE
它是特定于平台的,但在 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);
我的解决方案:
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));