你能改变Flutter文本主题吗?

3
如果主题设置在main.dart中,可以这样做:
return MaterialApp(
  title: 'MY APP',
  theme: ThemeData(
    primarySwatch: Colors.blue,
    fontFamily: 'Cabin',
    textTheme: TextTheme(
      headline1: TextStyle(
        fontFamily: 'Raleway',
        color: Colors.black,
        fontWeight: FontWeight.w600,
        fontSize: 18,
      ),
      subtitle1: TextStyle(
        fontFamily: 'Raleway',
        color: Colors.black54,
        fontWeight: FontWeight.w600,
        fontSize: 16,
      ),
    ),
  ),

我正在使用以下主题:

Text('MY STRING',
    style: Theme.of(context).textTheme.subtitle1),

我该如何使“MY STRING”与subtitle1主题颜色不同,同时保留主题数据的其他属性,例如字重、字体和大小等?
1个回答

9
你可以使用方法copyWith(color: your_color)来改变TextTheme的属性。
例如:
Text('MY STRING',
  style: Theme.of(context).textTheme.subtitle1
    .copyWith(color: Colors.red),
)

文档参考:https://api.flutter.dev/flutter/material/TextTheme/copyWith.html

该方法返回一个新的TextTheme对象,其中包含应用给定的值和属性的更改。该方法可以用于自定义应用程序中的文本主题。


1
正是我所需要的,谢谢。 - Maria PapaG

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