flutter windows如何实现启动最大化
在Flutter开发的Windows应用中,如何实现启动时窗口自动最大化?我在main函数中尝试了设置window.size和window.position,但启动时仍然是默认大小。是否需要调用特定的Win32 API或修改清单文件?求具体实现方法或示例代码。
2 回复
在Flutter Windows中,可通过修改windows/runner/main.cpp文件实现启动最大化。在WinMain函数中,使用ShowWindow函数并传入SW_SHOWMAXIMIZED参数即可。
更多关于flutter windows如何实现启动最大化的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter Windows应用中实现启动窗口最大化,可以通过以下两种方式实现:
方法一:使用 window_size 包(推荐)
- 添加依赖
dependencies:
window_size: ^0.3.0
- 在 main.dart 中配置
import 'package:flutter/material.dart';
import 'package:window_size/window_size.dart';
import 'dart:io';
void main() {
if (Platform.isWindows || Platform.isLinux || Platform.isMacOS) {
WidgetsFlutterBinding.ensureInitialized();
setWindowTitle('Your App Title');
setWindowMaxSize(Size.infinite); // 允许最大化
setWindowMinSize(Size(800, 600)); // 设置最小尺寸
}
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('Maximized Window')),
body: Center(child: Text('窗口已最大化启动')),
),
);
}
}
方法二:修改 Windows 原生代码
- 编辑
windows/runner/main.cpp
#include <flutter/dart_project.h>
#include <flutter/flutter_view_controller.h>
#include <windows.h>
#include "flutter_window.h"
#include "utils.h"
int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev,
_In_ wchar_t *command_line, _In_ int show_command) {
// 在创建窗口前设置启动状态为最大化
HWND hwnd = ::FindWindow(L"FLUTTER_RUNNER_WIN32_WINDOW", L"your_app_name");
if (hwnd != nullptr) {
::ShowWindow(hwnd, SW_SHOWMAXIMIZED);
}
// ... 其余原有代码保持不变
}
推荐使用方法一
使用 window_size 包更加简单可靠,不需要修改原生代码,且跨平台兼容性更好。安装包后,在 main() 函数初始化时调用相应方法即可实现窗口最大化启动。
记得在 pubspec.yaml 中添加依赖后运行 flutter pub get。

