Text样式

颜色

return Text(
  "Hello world!",
  style: TextStyle(
    // 在这里修改颜色
    color: Colors.red,
  )
);

字体大小

return Text(
  "Hello world!",
  style: TextStyle(
    // 在这里修改字体大小
    fontSize: 14,
  )
);

字体粗细

return Text(
  "Hello world!",
  style: TextStyle(
    // 在这里修改字体粗细
    fontWeight: FontWeight.bold,
  )
);

注意:由于默认字体无法完全支持中文的所有字体粗细,因此在默认情况下设置fontWeight可能对中文无效,如果要对中文使用,下一节修改字体

字体动画

用于改变字体的颜色等参数的过渡动画

// 使用AnimatedDefaultTextStyle代替Text
AnimatedDefaultTextStyle(
  duration: Duration(milliseconds: 200),
  style: TextStyle(
    fontSize: 14,
    // 注意,active是一个可变参数,通过setState改变参数,colorA和colorB是固定的颜色参数
    color: active ? colorA : colorB ,
  ),
  child: Text(
    "文本显示在这里",
  ),
),

改变文本内容的过渡动画(一般是淡入淡出动画)

AnimatedSwitcher(
  duration: const Duration(milliseconds: 200),
  child: active ? Text(
    // 务必注意添加key值来告诉AnimatedSwitcher组件发生变化
    key: const ValueKey<int>(0),
    'ABC',
  ) : Text(
    key: const ValueKey<int>(1),
    'DEF'
  )
),

使用Google提供的字体

安装google_fonts:

flutter pub add google_fonts

设置为默认字体

return MaterialApp(
  theme: ThemeData(
    // 简体中文
    textTheme: GoogleFonts.notoSansScTextTheme(),
  ),
)

使用本地字体

获取字体

需要自备字体,可以从这里下载注意语言

下载的时候会获取一个完整的字体包,包括粗体、细体和常规体等等,注意根据需要导入到项目中,过多的字体会导致打包的App大小更大

配置字体

pubspec.yaml文件中导入字体,这里以NotoSans字体举例,字体文件存储在assets/fonts目录下

flutter:
  fonts:
    - family: "Noto"
      fonts:
        - asset: assets/fonts/NotoSansSC-Bold.ttf
        - asset: assets/fonts/NotoSansSC-Regular.ttf

设置为默认字体

在创建MaterialApp的时候修改主题:

return MaterialApp(
  theme: ThemeData(
    // 在这里修改默认的字体
    fontFamily: "Noto",
  ),
  //其它代码...
);