如何删除标题栏从窗口构建的Flutter应用程序?

n3schb8v  于 2022-12-19  发布在  Flutter
关注(0)|答案(2)|浏览(216)

我为windows做了一个简单的flutter应用程序,当我运行它时,它显示windows的默认标题栏。我该如何删除它?

o8x7eapl

o8x7eapl1#

使用此包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(TitleBarStyle.hidden);
c2e8gylq

c2e8gylq2#

使用此软件包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,并在main函数中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()小部件中。

相关问题