Flutter 如何更改Flight showAboutDialog中的文本按钮颜色?

Flutter 如何更改Flight showAboutDialog中的文本按钮颜色?,flutter,Flutter,我正在使用颤振中的showAboutDialog功能来显示我项目中使用过的许可证。我一直在修改查看许可证和关闭文本按钮的文本颜色。请参见此图以了解更多信息: 这是我的代码: ... onTap: () { showAboutDialog( context: context, applicationName: 'bla', applicationLegalese: 'November 2023', ); }, 到目前为止,我尝试的是在showAboutDialog

我正在使用颤振中的
showAboutDialog
功能来显示我项目中使用过的许可证。我一直在修改
查看许可证
关闭
文本按钮的文本颜色。请参见此图以了解更多信息:

这是我的代码:

...
onTap: () {
  showAboutDialog(
    context: context,
    applicationName: 'bla',
    applicationLegalese: 'November 2023',
 );
},
到目前为止,我尝试的是在
showAboutDialog
中查找颜色字段,但我始终找不到任何内容。我假设我可以更改
MaterialApp
ThemeData
中的颜色。不幸的是,我无法找到特定的主题来覆盖那些文本按钮的默认样式

我在我的
MaterialApp
主题数据中尝试了以下操作,将
查看许可证
关闭
的颜色更改为绿色,但没有改变任何内容:

textButtonTheme: TextButtonThemeData(style: ButtonStyle(foregroundColor: MaterialStateProperty.all<Color>(Colors.green))
textButtonTheme:TextButtonThemeData(样式:ButtonStyle(foregroundColor:MaterialStateProperty.all(Colors.green))
有什么想法吗?

我运行这段代码。 经过一些研究,我发现了这种改变颜色的方法

为此,您需要设置应用程序主主题颜色更改,如下所示

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        primarySwatch: Colors.brown,//i am set brown colour,you can set your colour here 
      ),
      debugShowCheckedModeBanner: false,
      home: YourScreen(),
    );
  }
在这之后,它的工作

showAboutDialog(
                  context: context,
                  applicationName: 'bla',
                  applicationLegalese: 'November 2023',
                );
这个怎么样

@override
Widget build(BuildContext context) {
  return MaterialApp(
    theme: ThemeData(
      primarySwatch: Colors.blue,
      colorScheme: ColorScheme.fromSwatch(
        primarySwatch: Colors.green,
      ).copyWith(),      
    ),
    debugShowCheckedModeBanner: false,
    home: YourScreen(),
  );
}

您可以使用以下功能:

return MaterialApp(
      theme: ThemeData.dark().copyWith(
          textButtonTheme: TextButtonThemeData(
              style: ButtonStyle(
                  foregroundColor: MaterialStateProperty.resolveWith(
                      (state) => Colors.orange)))),
      home: MyWidget(),
    );
MaterialStateProperty.resolveWith
使用函数,可以根据状态指定颜色,例如

MaterialState.pressed,
MaterialState.hovered,
MaterialState.focused,

.

我对这里的答案不满意,因为所有的答案都只显示MaterialColor用例,我想要自定义颜色。但我最终在下面的链接中找到了一些很好的解释

基本上,令人困惑的是,新设计使用的是原色而不是textStyle属性。您仍然可以应用其他答案来使用MaterialColor更改整个主题,并且可以使用TextButton.styleFrom下的primary来覆盖任何颜色的现有颜色主题

应用程序中任何位置的示例:

TextButton(
      onPressed: () {},
      style: TextButton.styleFrom(
        primary: Colors.pink,
      ),
      child: Text(
        'TextButton (New)',
        style: TextStyle(fontSize: 30),
      ),
    )
主题示例:

textButtonTheme: TextButtonThemeData(
      style: TextButton.styleFrom(
        primary: kDarkColor, // This is a custom color variable
        textStyle: GoogleFonts.fredokaOne(),
      ),
    ),

如果我已经有一个主题数据,但我只是想为这个实例做些不同的事情,那该怎么办/screen@lordvidex我不确定,但是,我认为“showAboutDialog”并不是那种情况。