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)
现在有一个插件可以做到这一点,这不是一个永久性的东西,因为它被描述为最终被折叠到核心库之前的初步功能。
目前使用该插件仍然可能比直接修改本机代码的硬编码更好,特别是如果您想要在多个平台上工作。
首先添加到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)
我希望这可以帮助别人。当真正的答案出来时,我会尝试更新这篇文章。界面看起来可能会近似于这个库中呈现的内容,但功能集可能会发生一些变化。
我不确定这是否 100% 有效,但我一直在寻找设置窗口大小的可能性。我已经找到了 @karora 提到的包,但我只想设置窗口大小并继续。所以我们可以使用xcode来制作它。
在项目文件夹中打开 Runner.xcodeproj:
macos -> Runner.xcodeproj
Run Code Online (Sandbox Code Playgroud)
然后在 Xcode 项目中找到 MainMenu.xib 然后你可以调整你的 flutter 窗口的大小。

| 归档时间: |
|
| 查看次数: |
3318 次 |
| 最近记录: |