iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Flutter设置全局字体的实现
  • 896
分享到

Flutter设置全局字体的实现

2024-04-02 19:04:59 896人浏览 独家记忆
摘要

目录引入字体全局字体问题library中设置失效TextSpan中字体未生效引入字体 首先在项目中创建fonts目录,然后将将ttf文件放到该目录下,然后在pubspec文件中添加该

引入字体

首先在项目中创建fonts目录,然后将将ttf文件放到该目录下,然后在pubspec文件中添加该字体文件,如:

...
Flutter:
  fonts:
    - family: PingFang
      fonts:
        - asset: fonts/PingFang-Regular.ttf

  assets:
    - assets/exit_icon.png

这里family是我们自定义的,对应该字体,这里每个字体可以对应多个ttf文件,比如区分加粗:

flutter:
  fonts:
    - family: Raleway
      fonts:
        - asset: assets/fonts/Raleway-Regular.ttf
        - asset: assets/fonts/Raleway-Medium.ttf
          weight: 500
        - asset: assets/fonts/Raleway-SemiBold.ttf
          weight: 600
    - family: AbrilFatface
      fonts:
        - asset: assets/fonts/abrilfatface/AbrilFatface-Regular.ttf
  • family 是字体的名称, 你可以在TextStyle的 fontFamily 属性中使用.
  • asset 是相对于 pubspec.yaml 文件的路径.这些文件包含字体中字形的轮廓。在构建应用程序时,这些文件会包含在应用程序的asset包中。

可以给字体设置粗细、倾斜等样式

  • weight属性指定字体的粗细,取值范围是100到900之间的整百数(100的倍数). 这些值对应 FontWeight, 可以用于 TextStyle的fontWeight属性
  • style 指定字体是倾斜还是正常,对应的值为italic和 nORMal. 这些值对应 FontStyle 可以用于TextStyle的 fontStyle TextStyle 属性

引入字体后可以在Text的sytle中使用即可

Text(
    "test",
    style: TextStyle(fontFamily: "Rock Salt",),
)

全局字体

想设置全局字体,则需要在App中设置,如下:

MaterialApp(
  title: title,
  theme: ThemeData(
    primarySwatch: Colors.blue,
    visualDensity: VisualDensity.comfortable,
    fontFamily: "PingFang",
    textTheme: TextTheme(
      ...
    )
  ),
  ...
);

这样全局字体都变成了我们设定的字体。

问题

但是这里有两个小问题(flutter WEB,其他平台未测):

library中设置失效

我们将基础功能封装到一个library(gitsubmodule形式,所以没有发布)中,其实承载MaterialApp的BaseApp也在library中,所以最开始将字体文件放在了library中,然后在BaseApp的MaterialApp中设置了fontFamily。
但是运行发现字体根本没变化,通过flutter build web编译后发现在build目录下生成的文件中没有这个字体文件。
目前未找到原因,不过有解决方法,简单的解决方法就是在主工程中也放一份该字体文件,同时在主工程的pubspec中也添加该字体(名称与library中保持一致)。这样运行就会发现字体都变过来了,build编译后也生成了该字体文件。

TextSpan中字体未生效

TextSpan可以用来处理图文混合的需求。比如前面一个图片标签,后面是文字,但是文字第二行还要从图片最左端开始,即环绕图片,这种时候就需要TextSpan+WidgetSpan配合只用即可。
但是在flutter web中(其他平台未测),通过上面设置全局字体后,发现TextSpan中的字体并未生效,还是系统字体。
说明TextSpan稍微特殊一些,我们知道Text的源码中style实际上做了一步merge操作,merge了默认的style(defaultTextStyle)。但是在TextSpan的源码中,发现并没有这一步操作,所以设置的全局字体对它不起作用。
所以使用TextSpan的地方如果需要则必须单独设置字体。

到此这篇关于Flutter 设置全局字体的实现的文章就介绍到这了,更多相关Flutter 全局字体内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Flutter设置全局字体的实现

本文链接: https://www.lsjlt.com/news/139420.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Flutter设置全局字体的实现
    目录引入字体全局字体问题library中设置失效TextSpan中字体未生效引入字体 首先在项目中创建fonts目录,然后将将ttf文件放到该目录下,然后在pubspec文件中添加该...
    99+
    2024-04-02
  • 【Flutter】Flutter 设置默认字体 设置自定义字体
    文章目录 一、前言本文重点版本信息 二、如何在 Flutter 中设置默认字体Flutter 中字体的设置方式全局字体设置的步骤和代码示例 三、在 Flutter 中使用自定义字体...
    99+
    2023-09-06
    flutter android ios 前端 原力计划
  • Flutter 如何设置App的主色调与字体
    Flutter 的主题色和字体可以在MaterialApp 中设置,即在 main.dart 的入口返回的 MaterialApp 组件统一设置全局的主色调和字体。如下面的代码所示:...
    99+
    2024-04-02
  • Mybatis-Plus设置全局或者局部ID自增的实现
    目录前言全局自增局部自增前言 在使用Mybatis-Plus新增的时候,我们往往想要id随着数据库自增,但是如果不是我们指定id为auto(自增)的话,会通过算法算出来一个比较大的i...
    99+
    2023-01-08
    Mybatis-Plus全局ID自增 Mybatis-Plus局部ID自增
  • SpringBoot实现设置全局和局部时间格式化
    目录前言解决问题1 全局设置(推荐)2 局部设置(不推荐)总结前言 在开发中,我们进行数据库查询日期类型的时候,往往不是我们想要的时间格式,比如下面的情况: 我数据库里面把这些日期相...
    99+
    2023-01-08
    SpringBoot 全局时间格式化 SpringBoot 局部时间格式化 SpringBoot时间格式化
  • css布局中怎么设置中文字体
    这篇文章主要介绍“css布局中怎么设置中文字体”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“css布局中怎么设置中文字体”文章能帮助大家解决问题。 1、不克不及随...
    99+
    2024-04-02
  • 怎么设置git全局参数名字
    本篇内容主要讲解“怎么设置git全局参数名字”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么设置git全局参数名字”吧!打开Git Bash首先,我们需要打开Git Bash终端。在Windo...
    99+
    2023-07-05
  • CSS如何设置字体都是使用比较安全的字体
    这篇文章主要为大家展示了“CSS如何设置字体都是使用比较安全的字体”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CSS如何设置字体都是使用比较安全的字体”这篇文...
    99+
    2024-04-02
  • css怎么统一设置全页文字字体
    这篇文章主要介绍css怎么统一设置全页文字字体,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 在css中,可以利用“*”选择器和“font-size”属性...
    99+
    2024-04-02
  • Flutter实现渐变色加描边字体效果
    目录写在前面内容实现描边实现渐变一些调整参考写在前面 实现如下图的效果,这个数字的内部和外部都有渐变色。 内容 实现描边 在网上搜索一轮,可以看到通过用 Stack,来让两个 Te...
    99+
    2024-04-02
  • html布局中怎么统一设置文字字体样式
    这篇文章主要介绍了html布局中怎么统一设置文字字体样式的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇html布局中怎么统一设置文字字体样式文章都会有所收获,下面我们一起来看看...
    99+
    2024-04-02
  • SpringBoot如何实现设置全局和局部时间格式化
    本篇内容主要讲解“SpringBoot如何实现设置全局和局部时间格式化”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot如何实现设置全局和局部时间格式化”吧!前言在开发中,我们进...
    99+
    2023-07-04
  • 总结设置git全局参数名字的方法
    Git是一种非常流行的分布式版本控制系统,它可以帮助开发者有效地管理代码。在使用Git时,你需要配置一些参数,其中一个非常重要的是全局参数名字。这个参数可以让Git知道你的身份,这样在提交代码时就可以正确地记录提交者的信息。接下来,我将为大...
    99+
    2023-10-22
  • html中的字体设置
    HTML是一种网页编写语言,其中最基本的元素之一就是字体。通过HTML可以设置字体的类型、大小以及颜色,从而使文本内容更加清晰明了。本文将详细介绍在HTML中如何设置字体,以及一些注意事项。一、HTML中的基本字体设置HTML中,通常使用以...
    99+
    2023-05-15
  • 全网页DIV默认字体怎么设置
    这篇文章主要介绍了全网页DIV默认字体怎么设置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇全网页DIV默认字体怎么设置文章都会有所收获,下面我们一起来看看吧。 假如配置常见...
    99+
    2024-04-02
  • Flutter实现PopupMenu(弹出设置菜单)
    PopupMenuButton简介 PopupMenuButton是一个用于创建弹出菜单的小部件。它通常与IconButton或其他触发菜单显示的小部件一起使用。当用户点击触发按钮时,PopupMen...
    99+
    2023-09-28
    flutter android PopupMenuButton PopupMenuItem 弹出设置菜单
  • Pycharm怎么设置字体大小_Pycharm设置字体大小的方法
    首先打开pycharm,打开后点击左侧的file,如图: 在打开的工具栏中,点击Settings,如图: 在设置界面,点击左侧的Font选项,如图: 在右侧界面,根据需要设置字体大...
    99+
    2024-05-10
    pycharm
  • css字体的设置方法
    这篇文章给大家分享的是有关css字体的设置方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。css字体的设置方法:【font-family】规定元素的字体系列,【font-family】可以把多个字体名称作为一个...
    99+
    2023-06-14
  • html设置字体的方法
    这篇文章给大家分享的是有关html设置字体的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。html有什么特点1、简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便,适合初学前端开发者使用。2、可扩...
    99+
    2023-06-14
  • css设置字体位置的方法
    这篇“css设置字体位置的方法”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“css设置字体位置的方法”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,下面让我们一起来看...
    99+
    2023-06-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作