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

问题描述 投票:0回答:1

我想用flutter搭建一个macOS桌面应用。我希望应用程序是全宽的,边缘到边缘。然而,当我通过模拟器运行应用程序时,或者在构建之后,它总是以800x600的大小启动应用程序。

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

这是我的整个测试应用代码。

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),
        ),
      ),
    );
  }
}

flutter flutter-layout
1个回答
1
投票

目前唯一能控制初始大小的方法是在原生代码中(按照这些问题。12 以了解何时改变)。) 你很可能想把它设置在 macos/Runner/MainFlutterWindow.swift.

从你的描述中并不清楚你是想启动到全屏模式,还是只想有一个与屏幕客户端区域大小相同的标准窗口;所涉及的代码将根据你想实现的目标而有所不同。


0
投票

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

目前使用这个插件可能还是比直接修改原生代码硬编码要好,尤其是当你要在多个平台上工作的时候。

首先将其添加到 pubspec.yaml 这样的东西。

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

使用特定的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());
}

我希望这能帮到你 当真正的答案出来后,我会尝试更新这个帖子。 看来界面很可能会近似于这个库中呈现的内容,但功能集很可能会发生一些变化。

© www.soinside.com 2019 - 2024. All rights reserved.