如何在flutter中设置macos应用程序的默认大小?

del*_*vin 7 flutter flutter-layout

我正在尝试使用颤振构建 macOS 桌面应用程序。我希望应用程序是全宽的,边到边的。但是,当我通过模拟器运行应用程序时,或者在构建之后,它总是以 800x600 的大小启动应用程序。

我已将根容器的高度和宽度设置为 double.infinity。事实上,即使我将高度和宽度设置为 10.0,它也始终以 800x600 启动应用程序。我是颤振的新手,所以可能缺少一些基础知识。我遇到的大多数教程都在谈论构建一个移动应用程序,这从来都不是问题,因为应用程序总是以全宽启动。

这是我的整个测试应用程序代码:

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      decoration: BoxDecoration(color: Colors.white),
      height: double.infinity,
      width: double.infinity,
      child: Center(
        child: Text(
          'Hello World',
          textDirection: TextDirection.ltr,
          style: TextStyle(
              fontSize: 32, fontWeight: FontWeight.bold, color: Colors.black),
        ),
      ),
    );
  }
}

Run Code Online (Sandbox Code Playgroud)

kar*_*ora 8

现在有一个插件可以做到这一点,这不是一个永久性的东西,因为它被描述为最终被折叠到核心库之前的初步功能。

目前使用该插件仍然可能比直接修改本机代码的硬编码更好,特别是如果您想要在多个平台上工作。

首先添加到pubspec.yaml类似的东西:

dependencies:
  ...
  window_size:
    git:
      url: git://github.com/google/flutter-desktop-embedding.git
      path: plugins/window_size
      ref: 927f8cbc09b35d85245c095f2db8df9b186f6618
Run Code Online (Sandbox Code Playgroud)

使用特定的 Git 参考来包含它,如上所示,将使您能够很好地控制何时选择拉取更新的代码并进行可能需要的任何更改。

然后,您可以访问各种函数来设置最小/最大窗口大小或框架,或获取当前值,例如:

...
import 'dart:io'
import 'package:window_size/window_size.dart';
...
void main() {
  WidgetsFlutterBinding.ensureInitialized();
  if (Platform.isWindows || Platform.isLinux || Platform.isMacOS) {
    setWindowTitle("My Desktop App");
    setWindowMinSize(Size(375, 750));
    setWindowMaxSize(Size(600, 1000));
  }
  runApp(MyApp());
}
Run Code Online (Sandbox Code Playgroud)

我希望这可以帮助别人。当真正的答案出来时,我会尝试更新这篇文章。界面看起来可能会近似于这个库中呈现的内容,但功能集可能会发生一些变化。


Nik*_*kix 6

我不确定这是否 100% 有效,但我一直在寻找设置窗口大小的可能性。我已经找到了 @karora 提到的包,但我只想设置窗口大小并继续。所以我们可以使用xcode来制作它。

在项目文件夹中打开 Runner.xcodeproj:

macos -> Runner.xcodeproj
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

然后在 Xcode 项目中找到 MainMenu.xib 然后你可以调整你的 flutter 窗口的大小。 在此输入图像描述


smo*_*gan 5

目前,控制初始大小的唯一方法是使用本机代码(请遵循以下问题:12以了解何时发生更改)。您很可能希望将其设置为macos/Runner/MainFlutterWindow.swift.

从您的描述中不清楚您是否想要启动全屏模式,或者只是有一个屏幕客户区域大小的标准窗口;所涉及的代码会有所不同,具体取决于您要完成的任务。