You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 05:25:19