为什么cupertino_icons中的图标太少了?

cre*_*not 6 dart flutter

两个问题.我认为将它们结合起来可能更明智,因为它们非常密切相关.

为什么没有更多/所有图标?

纵观常数的的CupertinoIcons,我能够做出来,有35个图标CupertinoIcons.

文档页面说明了这张地图:

此图标字体中的图标的地图.

我希望所有这些图标也会被展示CupertinoIcons,只有374个缺失,因为地图上有409个图标.

对我来说,CupertinoIcons是只稍微没用35级的图标,我可以,而不必访问cupertino_iconspubspec.yaml.

我认为安装cupertino_icons可能会改变一些东西.

插件实际上做了什么?

现在,我安装cupertino_icons插件,没有任何改变.我仍然可以访问与之前完全相同的35个图标(并且显示有和没有插件的图标).

这是否发生是因为我的设备已经安装了字体,因此不需要cupertino_icons插件才能工作?

Dan*_*eld 6

该插件确保包含必要的资产(字体)。

如果您查看源代码,您可以轻松复制其中定义的常量,只要它们存在于字体中即可。而且由于 Flutter 是开源的,如果您在其中确定了您认为应该向用户公开的其他有用图标,您当然可以为此创建一个 PR。

至于为什么......此时可能没有人优先考虑它。查找、命名和公开这些图标有点乏味——而且我想很多这样做的人最终只会认为“好的,我现在完成了”,而不是将其回馈给项目。

您可以在此处查看字体中包含的图标的更完整列表。您可以使用这些图标中的任何一个,即使它尚未在cupertino 图标类中定义。例如,如果您出于某种原因想要棒球图标:

const IconData baseball = const IconData(
  0xf4ba, 
  fontFamily: CupertinoIcons.iconFont, 
  fontPackage: CupertinoIcons.iconFontPackage);
Run Code Online (Sandbox Code Playgroud)

完全有可能将此作为拉取请求添加到https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/cupertino/icons.dart - 但我想它不在因为它不被视为常用或必要,或者可能是因为有人还没有使用它。

无论哪种方式,您仍然需要 cupertino_icons 包,因为这将确保 .ttf 文件包含在您的应用程序中(应用程序需要在运行时呈现图标)。但是如果您不打算使用它们,请不要包含它,因为它会导致您的应用程序比它需要的要大(额外的字体会占用空间)。