【发布时间】:2021-08-19 17:16:42
【问题描述】:
我为 windows 制作了一个简单的颤振应用程序,当我运行它时,它会显示 windows 具有的默认标题栏。我怎样才能删除它??
【问题讨论】:
-
标题栏是指交叉、最小化等的位置吗?
-
是的,我的意思是关闭、最小化、最大化按钮的位置
我为 windows 制作了一个简单的颤振应用程序,当我运行它时,它会显示 windows 具有的默认标题栏。我怎样才能删除它??
【问题讨论】:
使用此包bitsdojo_window 执行以下操作:
在您的应用程序文件夹中,转到windows\runner\main.cpp 并在文件开头添加这两行:
#include <bitsdojo_window_windows/bitsdojo_window_plugin.h>
auto bdw = bitsdojo_window_configure(BDW_CUSTOM_FRAME | BDW_HIDE_ON_STARTUP);
现在转到lib\main.dart 并在runApp(MyApp()); 之后的主函数中添加此代码:
void main() {
runApp(MyApp());
// Add this code below
doWhenWindowReady(() {
appWindow.show();
});
}
您还可以使用以下内容自定义窗口:
doWhenWindowReady(() {
final initialSize = Size(600, 450);
appWindow.minSize = initialSize;
appWindow.size = initialSize;
appWindow.alignment = Alignment.center;
appWindow.show();
});
要实现您自己的标题按钮和文本,您可以使用包中的这些方法:
appWindow.title(title);
appWindow.close();
appWindow.maximize();
appWindow.minimize();
您还可以通过将标题栏的属性包装在MoveWindow() 小部件中来将标题栏的属性赋予任何小部件(例如拖动和双击以最大化)。
【讨论】:
使用此包window_manager 并执行此操作。
将此行添加到文件顶部:
import 'package:window_manager/window_manager.dart';
然后添加这行代码(这个函数没有官方文档记录)。
void main() async{
runApp(const MyApp());
windowManager.waitUntilReadyToShow().then((_) async{
await windowManager.setAsFrameless();
});
}
您也可以只隐藏标题栏但让按钮可见。这可以按如下方式完成:
await windowManager.setTitleBarStyle('hidden');
【讨论】: