如何在Flutter中覆盖TextTheme?

时间:2020-08-18 06:15:40

标签: flutter

在扑朔迷离的TextTheme中,有13种TextStyles:

  • headline1,
  • headline2,
  • headline3,
  • headline4,
  • 标题5,
  • 标题6,
  • subtitle1,
  • subtitle2
  • bodyText1,
  • bodyText2,
  • 标题
  • 按钮

但是我的要求是在项目中添加名称为bodyText3subtitle3的新TextStyle。

这样我就可以在小部件中使用它了,

Text(
      'Body Text 3',
      style: Theme.of(context).textTheme.bodyText3,
    )

如何在Flutter中做到这一点?

4 个答案:

答案 0 :(得分:0)

看看您能做什么,在主题中使用cd C:\Windows\SysWOW64 netsh winhttp import proxy source =ie 会做什么,因为它只会更改您想要的主题中的属性,并保留默认主题,因此现在在这里您可以提及您的自定义内容,并且会达到你的结果 示例:

copyWith

在这里提到之后,您可以使用它,它将起作用

MaterialApp(
      theme: ThemeData.dark().copyWith(
        textTheme: TextTheme(
          bodyText3: TextStyle(color: Colors.black54),
        ),
      ),

类似地,您也可以更改Text( 'Body Text 3', style: Theme.of(context).textTheme.bodyText3, ) ,只需在copyWith中提及

答案 1 :(得分:0)

您可以创建一个类来保存您的样式,然后从 您应用中任何位置。

class CustomTextStyle {
  static TextStyle bodyText3(BuildContext context) {
    return Theme.of(context).textTheme.bodyText2.copyWith(fontSize: 192.0);
  }
}

答案 2 :(得分:0)

您可以通过变量创建自己的textStyle const bodyText3 = TextStyle(...)

答案 3 :(得分:0)

您可以尝试从 TextTheme 创建一个类 TextThemeCustom 并定义您的textStyle bodyText3

使用 TextTheme ,创建一个名为bodyText3的扩展并检查:

如果当前对象是 TextThemeCustom
=>强制转换为 TextThemeCustom 并返回 bodyText3

bodyText3 的其他返回回退: bodyText2