如何在flutter中使用自定义字体样式?

Lon*_*son 5 fonts android dart flutter

我已经在pubspec.yaml上设置了以下代码:

fonts:
- family: Roboto
  fonts:
    - asset: fonts/Roboto-Light.ttf
    - asset: fonts/Roboto-Thin.ttf
    - asset: fonts/Roboto-Italic.ttf
Run Code Online (Sandbox Code Playgroud)

但我不知道在我的小部件中使用Roboto的样式"Roboto-Light.ttf".我试过这个:

new ListTile(
          title: new Text(
            "Home",
            style: new TextStyle(
              fontFamily: "Roboto",
              fontSize: 60.0,
            ),
          ),
        ),
Run Code Online (Sandbox Code Playgroud)

我不知道如何访问"Roboto-Light.ttf"风格.这该怎么做?

谢谢!

bof*_*mer 11

Roboto是Material样式的默认字体,不需要在pubspec.yaml中添加它.

要使用不同的变体,请设置a TextStyle

Text(
  'Home',
  style: TextStyle(
    fontWeight: FontWeight.w300, // light
    fontStyle: FontStyle.italic, // italic
  ),
);
Run Code Online (Sandbox Code Playgroud)

我觉得很瘦FontWeight.w200.


obl*_*mov 8

一般来说,您可以直接指定字体样式。

pubspec.yaml

  fonts:
    - family: Roboto
      fonts:
        - asset: fonts/Roboto-Light.ttf
          weight: 300
        - asset: fonts/Roboto-Thin.ttf
          weight: 100
        - asset: fonts/Roboto-Italic.ttf
          style: italic

Run Code Online (Sandbox Code Playgroud)

小部件

ListTile(
  title: Text(
    'Home',
    style: TextStyle(
      fontFamily: 'Roboto',
      fontWeight: FontWeight.w300, // -> Roboto-Light.ttf
      // fontWeight: FontWeight.w100 // -> Roboto-Thin.ttf
      fontSize: 60.0,
    ),
  ),
),
Run Code Online (Sandbox Code Playgroud)