我想用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),
),
),
);
}
}
现在有一个插件可以做到这一点,这不是一个永久的东西,因为它被描述为初步的功能,最终会被折叠到核心库中。
目前使用这个插件可能还是比直接修改原生代码硬编码要好,尤其是当你要在多个平台上工作的时候。
首先将其添加到 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());
}
我希望这能帮到你 当真正的答案出来后,我会尝试更新这个帖子。 看来界面很可能会近似于这个库中呈现的内容,但功能集很可能会发生一些变化。