【问题标题】:How to Remove Title Bar from Flutter app built for windows?如何从为 Windows 构建的 Flutter 应用程序中删除标题栏?
【发布时间】:2021-08-19 17:16:42
【问题描述】:

我为 windows 制作了一个简单的颤振应用程序,当我运行它时,它会显示 windows 具有的默认标题栏。我怎样才能删除它??

【问题讨论】:

  • 标题栏是指交叉、最小化等的位置吗?
  • 是的,我的意思是关闭、最小化、最大化按钮的位置

标签: flutter flutter-windows


【解决方案1】:

使用此包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() 小部件中来将标题栏的属性赋予任何小部件(例如拖动和双击以最大化)。

【讨论】:

    【解决方案2】:

    使用此包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');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-02
      • 2022-10-19
      • 2016-10-25
      • 1970-01-01
      • 2020-03-19
      • 1970-01-01
      相关资源
      最近更新 更多