为什么cupertino_icons中的图标很少?

时间:2018-06-29 18:00:10

标签: dart flutter

两个 问题。我认为将它们结合起来可能更明智,因为它们之间的联系非常紧密。

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

看看constants of the CupertinoIcons class,我发现CupertinoIcons中有 35 个图标。

文档页面显示有关this map的信息:

  

此图标字体中的图标图。

我希望所有这些图标也将出现在CupertinoIcons中,因为缺少 374 地图上的 409 个图标。

对我来说,CupertinoIcons仅带有 35 图标就没有用了,而我的cupertino_icons中没有pubspec.yaml时就可以访问它们。

我认为安装cupertino_icons可能会有所改变。

插件的实际作用是什么?

现在,我安装了cupertino_icons plugin没有更改 。我仍然可以使用与以前完全相同的 35 图标(并且无论是否显示插件都可以显示它们)。

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

2 个答案:

答案 0 :(得分:3)

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

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

关于为什么……目前可能还没有任何人优先考虑它。查找,命名和显示这些图标有些繁琐的工作-并且我想很多这样做的人最终都只是想出“好,我现在做完了”,而不是将其回馈给项目。

您可以看到字体here中包含的图标的完整列表。您可以使用任何这些图标,即使在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文件(应用程序需要在运行时呈现图标)。但是,如果您不打算使用它们,请不要包含它,因为它会使您的应用程序超出其所需的大小(多余的字体会占用空间)。

答案 1 :(得分:2)

cupertino_icons可以确保包含cupertino字体,即使在没有本机包含的字体中也是如此。例如Fushia或Android。

在未安装此程序包的情况下在android上使用cupertino图标将导致图形错误:

enter image description here


如果使用枚举cupertino_icons

,则应在依赖项中包含CupertinoIcons

在材料设计上也有同样的东西。但这不是一个包。相反,它是您需要在pubspec.yaml内设置的属性:

flutter:
  uses-material-design: true
  

以下行确保Material Icons字体为      包含在您的应用程序中,以便您可以使用      材质的Icons类。