flutter开发windows桌面应用的基础
需要用到一款插件:bitsdojo_window
在 pub.dev 官网搜索
然后导入依赖,在pubspec.yaml文件引入依赖
dependencies:
bitsdojo_window: ^0.1.6
在main函数中进行初始化
// 简单处理原生跟flutter通信
WidgetsFlutterBinding.ensureInitialized();
appWindow.size = const Size(600, 450);
runApp(const MyApp());
appWindow.show();
doWhenWindowReady(() {
final win = appWindow;
const initialSize = Size(600, 450); //初始化
win.minSize = initialSize; // 设置软件最小窗口大小
win.size = initialSize; // 默认的窗口大小
win.alignment = Alignment.center; // 窗口的位置
win.title = "Custom window with Flutter"; // 窗口标题
win.show(); // 展示
});
这个时候运行会发现顶部还有系统默认的关闭/最大化/最小化样式。
我们一般情况下都是自定义的,可以在windows\runner\main.cpp添加以下代码取消掉
#include <bitsdojo_window_windows/bitsdojo_window_plugin.h>
auto bdw = bitsdojo_window_configure(BDW_CUSTOM_FRAME | BDW_HIDE_ON_STARTUP);
现在运行会发现系统默认样式已经没有了,但是窗口是不能拖动的,可以通过bitsdojo_window插件提供的WindowTitleBarBox(child: MoveWindow(),)组件来设置可以拖动的位置
现在标题栏可以拖动了,开始自定义最大化/最小化/关闭按钮
bitsdojo_window插件已经给我们提供好了对应的组件
Row(
children: [
MouseRegion(
cursor: SystemMouseCursors.click,
child: MinimizeWindowButton(),
),
MaximizeWindowButton(),
CloseWindowButton()
],
);
评论 (0)