dart - 为什么 cupertino_icons 中的图标很少?
问题描述
两个问题。我认为将它们结合起来可能更明智,因为它们之间的关系非常密切。
为什么没有更多/所有图标?
查看类的常量,CupertinoIcons
我发现.CupertinoIcons
文档页面说明了这张地图:
此图标字体中的图标地图。
我希望所有这些图标也会出现在地图上,因为地图上有409个图标CupertinoIcons
,所以只有374 个丢失了。
对我CupertinoIcons
来说,只有35个图标有点没用,我可以cupertino_icons
在没有pubspec.yaml
.
我认为安装cupertino_icons
可能会改变一些东西。
插件实际上是做什么的?
现在,我安装了cupertino_icons
插件,没有任何改变。我仍然可以访问与以前完全相同的35个图标(并且无论是否使用插件都显示它们)。
发生这种情况是因为我的设备已经安装了字体,因此不需要cupertino_icons
插件即可工作?
解决方案
该插件确保包含必要的资产(字体)。
如果您查看源代码,您可以轻松地复制其中定义的常量,只要它们存在于字体中。而且由于 Flutter 是开源的,如果您在其中发现其他您认为应该向用户公开的有用图标,您当然可以为此创建一个 PR。
至于为什么……目前可能还没有任何人优先考虑它。查找、命名和公开这些图标有点乏味——我想很多这样做的人最终只是想“好吧,我现在完成了”,而不是把它回馈给项目。
您可以在此处查看字体中包含的图标的更完整列表。您可以使用这些图标中的任何一个,即使它尚未在 cupertino 图标类中定义。例如,如果您出于某种原因想要棒球图标:
const IconData baseball = const IconData(
0xf4ba,
fontFamily: CupertinoIcons.iconFont,
fontPackage: CupertinoIcons.iconFontPackage);
完全有可能将此作为拉取请求添加到https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/cupertino/icons.dart - 但我想它不在那里是因为它不被视为常用或必要的,或者可能是因为有人还没有接触到它。
无论哪种方式,您仍然需要 cupertino_icons 包,因为这将确保 .ttf 文件包含在您的应用程序中(应用程序需要在运行时呈现图标)。但是,如果您不打算使用它们,请不要包含它,因为它会导致您的应用程序比它需要的更大(额外的字体会占用空间)。
推荐阅读
- java - 什么首先起作用:Servlet 过滤器或 Spring 拦截器?
- scala - Spark过滤器功能在不期望的情况下过滤空值
- javascript - MongoError:FiledPath 字段名称可能不以“$”开头
- python - 在 Pandas 中使用 Dataframe.plot 时如何更改每个子图的 bin 大小
- flutter - 如何在 Flutter 中将图标添加到 List View Builder 列表中?
- android-studio - 为什么 ScrollView 在向下滚动时会留下很多不必要的空间?
- vb.net - Datagridview 返回列值(到字符串?)
- java - 自动装配依赖的 MapStruct 注入失败
- r - 跨多列在行内比较删除不匹配并创建新行
- angular - Angular concatMap 未调用下一个 API