如何在颤动中通用更改应用栏的字体系列?

Posted

技术标签:

【中文标题】如何在颤动中通用更改应用栏的字体系列?【英文标题】:How to change font family of app bar universally in flutter? 【发布时间】:2021-04-05 08:44:35 【问题描述】:

我想普遍地更改我的应用程序中的应用栏字体,但我没有找到任何合适的答案。 有没有办法在 MaterialApp 中使用 ThemeData 和主题来全局应用主题? 我不想像下面这样应用 TextStyle 属性

appBar: AppBar(
            title: Text('Title ',style: TextStyle(fontFamily: 'YOUR_FONT_FAMILY'),
            ),
          ),

如果没有,更改应用栏字体的最佳方法是什么?

P.S.这是我在 *** 上的第一篇文章。

【问题讨论】:

【参考方案1】:

你应该使用AppBarTheme。请找到下面的代码

在 MaterialApp 中这样使用,

MaterialApp(
      title: 'Test App',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        appBarTheme: AppBarTheme(
          textTheme: ThemeData.light()
              .textTheme
              .copyWith(
                headline6: TextStyle( // instead of title use can use display as well
                  fontFamily: 'Lobster',
                ),
              )
              .apply(
                fontFamily: 'Lobster',
              ),
        ),
      ),
    );
AppBar(
      title: Text('App bar', 
                 style: Theme.of(context).appBarTheme.textTheme. headline6,
             ),
    );

【讨论】:

这不起作用。除了创建新的 AppBarTheme(),我们不能只使用 Theme.of(context).appBarTheme.copywith() 吗? 这也是可能的。它应该可以工作。还有你使用的字体系列,你在 pubspec.yaml 文件中配置了它 是的,它是在 pubspec.yaml 文件中配置的,字体系列是 'Lobster'。我可以改变它,但我想普遍改变它。 知道了。请检查我刚刚在 MaterialApp 中添加的更新代码。希望有效 我发现headline6 用于应用栏和对话框中的主要文本。来源:api.flutter.dev/flutter/material/TextTheme/headline6.html 所以我像这样配置它并且它工作了``` appBarTheme: Theme.of(context).appBarTheme.copyWith( textTheme: Theme.of(context).textTheme.copyWith(headline6: TextStyle( fontSize: 24 , fontFamily: 'Lobster', ),),), ``` 我不必使用 light() 或 dark()。这可能是正确的。

以上是关于如何在颤动中通用更改应用栏的字体系列?的主要内容,如果未能解决你的问题,请参考以下文章

在颤动中更改标签栏的背景颜色

如何更改shinydashboard中侧边栏的字体大小

Sublime Text 2 如何更改文件侧边栏的字体大小?

长按动作栏的后退箭头在颤动中显示“返回”吐司,如何删除?

如何在不知道小部件的字体系列/大小的情况下更改小部件的字体样式?

如何更改 asp 下拉列表中所有项目的字体系列?