flutter desktop设置窗口默认大小

使用插件设置初始大小

有一个插件。这个插件将是临时的,因为这个功能迟早会被包含在 SDK 中。但目前它解决了这个问题。如果您遇到此问题,我建议您使用此插件。这可能是比硬编码直接修改本机代码更好的方法,特别是如果您有多个平台要工作。

首先在 pubspec.yaml 中添加如下内容:

dependencies:
...
  window_size:
    git:
      url: https://github.com/google/flutter-desktop-embedding.git
      path: plugins/window_size

使用特定的 Git 参考可以让您完全控制何时选择提取更新的代码并进行任何可能需要的更改。该插件提供设置最小和最大窗口大小以及查询屏幕参数

import 'dart:io'
import 'package:window_size/window_size.dart';

import 'package:flutter/foundation.dart' show kIsWeb;


Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  if ( !kIsWeb && (Platform.isWindows || Platform.isLinux || Platform.isMacOS)) {
    setWindowTitle("BSMI 计算器");
    var tWidth = 512.0;
    var tHeight = 926.0;
    setWindowMinSize(Size(tWidth, tHeight));
    setWindowMaxSize(Size(tWidth, tHeight));
    //setWindowSize(Size(1024, 800));
    var platformWindow = await getWindowInfo();
    Rect frame = Rect.fromCenter(
      center: Offset(
        platformWindow.frame.center.dx,
        platformWindow.frame.center.dy,
      ),
      width: tWidth,
      height: tHeight,
    );
    setWindowFrame(frame);
  }
  runApp(MyApp());
}

考虑到跨平台的复杂性,我们其实可以用一些插件帮助我们完成这个任务,比如这个

https://github.com/leanflutter/window_manager

它就支持windows, Linux, MacOS 三个平台。

分类: 默认 标签: 发布于: 2022-05-24 11:12:20, 更新于: 2022-06-16 11:23:52