在Flutter Windows桌面应用中更改标题栏颜色

4
我正在开发一个Windows桌面应用程序,如果可能的话,我想改变标题栏的颜色。例如,我想从这样的样式:enter image description here,变成这样的样式:enter image description here。使用Flutter是否可以实现,如何做到?谢谢。
2个回答

3

对于这种定制化需求,您需要使用bitsdojo_windows社区包,该包允许您自定义窗口的外观。


8
那个图书馆很有漏洞且容易崩溃,供您参考。 - Oliver Dixon

1
有点晚了,但你可以使用window_manager来实现你想要的功能。 为了隐藏标题栏,在调用runApp之前,你应该使用setTitleBarStyle()方法,这样用户就不会看到UI上的延迟或延迟。 以下是一个最小化的示例:
import 'package:flutter/material.dart';
import 'package:window_manager/window_manager.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized(); //Must be called
  await windowManager.ensureInitialized(); //Must be called
  //waitUntilReadyToShow ==> Optional method to use, requires modification of native runner - Read docs of the package.
  await windowManager.waitUntilReadyToShow().then((_) async {
    await windowManager.setTitleBarStyle(TitleBarStyle.hidden); //Hiding the titlebar
    await windowManager.setTitle("I don't have a titlebar!"); //We don't have a titlebar, this title appears in Task Manager for example.
    await windowManager.show(); //Finally show app window.
  });
  runApp(const MyApp());
}


class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: Scaffold(
        body: Center(
          child: Text('My Titlebar-less app!'),
        ),
      ),
    );
  }
}


完全不工作 - Nicholas Jela
@NicholasJela 请告诉我具体哪里出了问题。如果需要,我很乐意进一步解释并编辑答案。 - Vonarian
标题由于颜色问题未显示 - Praburam S

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接