Flutter桌面应用设置固定宽高并禁用窗口调整功能
Flutter桌面应用设置固定窗口尺寸并禁用调整
要实现固定400x800的窗口尺寸且禁止用户调整,推荐使用window_manager包跨平台处理窗口配置,步骤如下:
1. 添加依赖
在项目的pubspec.yaml中添加window_manager依赖:
dependencies: flutter: sdk: flutter window_manager: ^0.3.8 # 使用最新版本即可
执行flutter pub get完成依赖安装。
2. 配置窗口参数
在main.dart中初始化窗口管理器,设置固定尺寸并禁用调整功能:
import 'package:flutter/material.dart'; import 'package:window_manager/window_manager.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); // 初始化窗口管理器 await windowManager.ensureInitialized(); // 配置窗口基础参数 const windowOptions = WindowOptions( size: Size(400, 800), // 固定窗口尺寸为400x800 center: true, // 窗口启动时居中显示 titleBarStyle: TitleBarStyle.normal, // 保留系统标题栏(可选,也可设置为hidden隐藏) ); windowManager.waitUntilReadyToShow(windowOptions, () async { await windowManager.show(); await windowManager.focus(); await windowManager.setResizable(false); // 禁用窗口大小调整 }); runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( title: 'Fixed Size Demo', theme: ThemeData(primarySwatch: Colors.blue), home: const Scaffold( body: Center( child: Text('固定400x800窗口,无法调整大小'), ), ), ); } }
关键说明
setResizable(false):这是禁用用户调整窗口大小的核心设置,调用后用户无法通过拖拽边框或标题栏菜单调整窗口尺寸。Size(400, 800):直接在WindowOptions中定义初始窗口尺寸,配合禁用调整的设置,就能保持窗口始终为该尺寸。- 跨平台兼容:
window_manager包支持Windows、macOS、Linux三大桌面平台,无需针对不同平台编写原生代码。
内容的提问来源于stack exchange,提问作者Orl13
相关产品推荐
相关产品推荐

