如何在 Vaadin Flow 中使用 Material 图标 (14.6)

2024-03-29

我想在 Vaadin 14.6 应用程序中使用 Material 图标。我找到了 Lumo 和 Iron 图标的食谱here https://vaadin.com/docs/v14/flow/components/tutorial-flow-icon(默认),但是没有发现如何集成Material图标。 如何才能做到这一点呢?

注意:这个成分 https://vaadin.com/directory/component/material-icons似乎不适用于 Vaadin 14.x


对此基本上有三种方法。

  1. 简单的方法

如果您只使用几个图标。https://fonts.google.com/icons https://fonts.google.com/icons允许您将每个图标下载为 svg 或 png 文件。所以你可以轻松地使用它们Image瓦丁的组成部分。

  1. 轻量方法,将其用作字体

Vaadin 网站上有一个培训视频,描述了与应用程序主题和样式相关的各种内容,在 19:30 时间戳处有一章介绍如何配置自定义字体:

https://vaadin.com/learn/training/v14-theming https://vaadin.com/learn/training/v14-theming

材质图标只是一种字体,您可以将其包含在您的项目中。

将 webfont 文件放在例如“src/main/webapp/fonts/MaterialIcons”(注意如果你有Spring Boot jar打包的项目位置会不同)并导入生成的css

@StyleSheet("context://fonts/MaterialIcons/materialicons.css")

其中materialicons.css内容例如:

@font-face {
    font-family: 'MaterialIcons';
    font-style: normal;
    font-weight: 400;
    src: local('Material Icons'),
    local('MaterialIcons-Regular'),
    url(MaterialIcons-Regular.woff2) format('woff2'),
    url(MaterialIcons-Regular.woff) format('woff'),
    url(MaterialIcons-Regular.ttf) format('truetype');
}

开发人员体验并不是最好的,因为您需要使用字符代码来使用图标,例如“搜索”图标接缝为“e8b6”等。因此,设置 a 的文本内容span or div并定义元素的 css 以使用材质字体图标。

span.getElement().getStyles().set("font-family","MaterialIcons");
  1. 将其创建为附加包

如果您需要在多个项目中使用多种字体,那么这是值得的。

FontAwesome 的附加包已经存在。这很好地展示了如何构建此类附加组件。替换字体资源很简单,需要更多的工作来生成枚举的图标名称列表,以便有更直观的 Java API 来使用图标。似乎有该字体的标准代码点文件https://github.com/google/material-design-icons/tree/master/font https://github.com/google/material-design-icons/tree/master/font因此,可以使用与 FontAwesome 附加项目中类似的脚本。

https://github.com/FlowingCode/FontAwesomeIronIconset https://github.com/FlowingCode/FontAwesomeIronIconset

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Vaadin Flow 中使用 Material 图标 (14.6) 的相关文章

  • Dealloc 被调用两次?

    解决 感谢孤独枪手 这个问题是由于在释放许多代表之前没有将其设置为零而造成的 这是一个奇怪的 我熟悉基本的内存管理 但我认为我所看到的有些不寻常 这是一些背景 我有一个 NavigationController 来处理以下 ViewCont
  • “Binding”类型的 DependencyProperty 未更新

    我在创建 Binding 类型的 DependencyProperty 时遇到问题 其他类型工作正常 如果我使用绑定填充它们 它们就会成功解析 在我的场景中 我想获取原始绑定 以便我可以使用它来绑定到子对象的属性 这与 DataGrid 处
  • 相对于视图的CGPoint

    考虑一个屏幕点 CGPoint 和一个视图 UIView 它位于视图层次结构内部的某个位置 它可以是其他视图的子视图 如何将点转换为相对于视图坐标的点 首先 将该点从屏幕坐标转换为主窗口的坐标 UIWindow mainWindow UIA
  • 分配新值后将 ObservableCollection 绑定到 DataGrid

    这似乎是一个简单的问题 但我无法让它发挥作用 我有一个具有以下属性的用户控件 public ObservableCollection

随机推荐

  • 仅当 IP 地址获得批准时才允许用户访问页面

    如何制作一个 HTML 和 CSS PHP JavaScript 文档 只允许页面上的某些 IP 地址 我不是问 how 使用 PHP 查找 IP 地址 但如何允许基于 IP 地址访问页面 把它放在你的 php 文件的顶部并更新allowe
  • 用于创建断开连接的数据库应用程序的最佳基于 .NET3.5 的策略

    我的要求是 相对较小的数据库 25 30 个表 每个表有 4 5k 行 4 5 个用户在其笔记本电脑上拥有自己的本地数据库副本 在需要时或一天结束时进行同步 免费解决方案 正如我为 NFP 组织进行的设置一样 过去几天我一直在研究各种选择
  • 如何调试肉桂小程序?

    我想写一个肉桂小程序 这些都是基于 JavaScript 的 我希望编写的代码更改服务 打开和关闭它们 类似于WebDeveloper菜单小程序 https bitbucket org infiniteshroom cinnamon web
  • 仅保留 git 中文件子集的提交

    我想实现以下目标 保留我选择的文件的所有更改历史记录 或提交 有些文件被重命名 有些文件也从其他目录移动 我想删除与我从 git 日志中选择的文件无关的所有提交 我尝试了不同的方法 例如this https medium com ayush
  • 如何通过http打开远程sqlite数据库?

    是否可以通过 http 打开 sqlite 文件 我只需要读取数据库 并希望我可以做类似的事情 var dbFile File new File http 10 1 1 50 project db sqlite sqlConnection
  • Angular View 绑定未使用简单布尔值更新

    再见 这可能是一个菜鸟问题 但我无法让它发挥作用 我有一个简单的服务 可以切换布尔值 如果布尔值为 true 则活动类应该出现在我的 div 上 如果为 false 则没有类 就这么简单 但是布尔值已更新 但我的视图没有对此做出反应 我是否
  • if match 语句中的 #N/A 返回 FALSE

    如果出现匹配错误 我会尝试显示 FALSE 值 现在 我还无法弄清楚 我对谷歌电子表格中的公式如何工作仍然很陌生 IF MATCH A16 W46 W52 0 TRUE FALSE 如果该值存在 则当前有效 我努力了 IF ISNA MAT
  • 大于/小于的 switch 语句

    所以我想使用这样的 switch 语句 switch scrollLeft case lt 1000 do stuff break case gt 1000 lt 2000 do stuff break 现在我知道这些陈述中的任何一个 lt
  • 如何找到多维数组的 .index

    尝试了网络资源 但没有任何运气和我的视觉快速入门指南 如果我有二维 多维数组 array x x x x x S x x x x x print array index S it returns nil 然后我去输入 array x S x
  • Facebook PHP SDK - 无法正确注销

    我花了几个小时寻找这个问题的解决方案 但找不到适合我的解决方案 当我在网站上单击 注销 时 用户信息仍然可见 并且仍然显示注销按钮 这是代码 require facebook php sdk src facebook php faceboo
  • Netlify 重定向不起作用 [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 所以昨天我遇到了问题 因为我无法对 GitHub 页面上托管的页面实施 301 重定向 今天我发现 Netlify 应该
  • 为什么我不能在 build() 中使用 context.read,但可以将 Provider.of 与 Listen: false 一起使用?

    文档中指出这些是相同的 并且context read只是一个捷径Provider of
  • 无法将 openlayers-3 与 webpack 一起使用

    我必须将 openlayers 包含在我正在开发的项目中 我已经尝试过将其包含在ext文件夹和 npm 我在我的工作流程中使用 Webpack 编译时 我在控制台中收到以下警告 WARNING in openlayers dist ol j
  • 基于 Observable 的 API 和取消订阅问题

    我正在尝试使用 Rx Java 创建一个用于 Android 上位置跟踪的类 我仍然不知道如何正确处理我的 Observable 的生命周期 我想要的是一个 Observable 它在第一次订阅发生时开始跟踪位置 并在最后一次订阅被丢弃时停
  • 使用承载授权将 PouchDB 同步到 Cloudant 时出现错误

    我是一名经验丰富的 JavaScript 程序员 但对 PouchDB Cloudant 和 oAuth 还很陌生 当我尝试使用承载授权同步 PouchDB 和 Cloudant 时 出现错误 reader access is requir
  • 如何停止滚动比div高度长的div?

    我有图像 与右侧对齐 位置是固定的 并且大文本内容与左侧对齐 如何做到右侧的图像和文本内容只能通过使用 bootstrap 来滚动 这是我的代码 感谢您的时间和建议
  • BigQuery 是否支持“立即执行”命令来运行动态查询?

    我可以在 Oracle 中编写这样的代码 使用 动态创建表 立即执行 sql 查询 命令 create or replace function make a table1 p table name varchar2 p column nam
  • 尝试在 SQLAlchemy 上运行插入语句时出现编译错误

    我正在编写的脚本从 API 请求新闻文章元数据 作为响应 它收到包含多篇新闻文章的结果页面 它旨在一次处理一个记录 从 json 字典中提取数据字段并将它们插入到 postgres 中 但是 当我运行插入操作时 该函数返回 CompileE
  • 如何仅为特定存储库设置 GIT_SSL_NO_VERIFY?

    我必须使用没有适当证书的 git 服务器 但我不想这样做 env GIT SSL NO VERIFY true git command 每次我进行 git 操作时 但我还想为其他 git 存储库启用 SSL 有没有办法使它成为单个存储库的本
  • 如何在 Vaadin Flow 中使用 Material 图标 (14.6)

    我想在 Vaadin 14 6 应用程序中使用 Material 图标 我找到了 Lumo 和 Iron 图标的食谱here https vaadin com docs v14 flow components tutorial flow i