IconData 类型
class IconData { /// Creates icon data. /// /// Rarely used directly. Instead, consider using one of the predefined icons /// like the [Icons] collection. /// /// The [fontPackage] argument must be non-null when using a font family that /// is included in a package. This is used when selecting the font. const IconData( this.codePoint, { this.fontFamily, this.fontPackage, this.matchTextDirection = false, }); /// The Unicode code point at which this icon is stored in the icon font. final int codePoint; /// The font family from which the glyph for the [codePoint] will be selected. final String? fontFamily; /// The name of the package from which the font family is included. /// /// The name is used by the [Icon] widget when configuring the [TextStyle] so /// that the given [fontFamily] is obtained from the appropriate asset. /// /// See also: /// /// * [TextStyle], which describes how to use fonts from other packages. final String? fontPackage; /// Whether this icon should be automatically mirrored in right-to-left /// environments. /// /// The [Icon] widget respects this value by mirroring the icon when the /// [Directionality] is [TextDirection.rtl]. final bool matchTextDirection; @override bool operator ==(Object other) { if (other.runtimeType != runtimeType) { return false; } return other is IconData && other.codePoint == codePoint && other.fontFamily == fontFamily && other.fontPackage == fontPackage && other.matchTextDirection == matchTextDirection; } @override int get hashCode => Object.hash(codePoint, fontFamily, fontPackage, matchTextDirection); @override String toString() => 'IconData(U+${codePoint.toRadixString(16).toUpperCase().padLeft(5, '0')})'; }
使用
IconData( //code 61454, //字体 fontFamily: 'FontAwesome' ),
CupertinoIcons 的源码
class CupertinoIcons { // This class is not meant to be instantiated or extended; this constructor // prevents instantiation and extension. CupertinoIcons._(); /// The icon font used for Cupertino icons. static const String iconFont = 'CupertinoIcons'; /// The dependent package providing the Cupertino icons font. static const String iconFontPackage = 'cupertino_icons'; // =========================================================================== // BEGIN LEGACY PRE SF SYMBOLS NAMES // We need to leave them as-is with the same codepoints for backward // compatibility with cupertino_icons <0.1.3. /// <i class='cupertino-icons md-36'>chevron_left</i> — Cupertino icon for a thin left chevron. /// This is the same icon as [chevron_left] in cupertino_icons 1.0.0+. static const IconData left_chevron = IconData(0xf3d2, fontFamily: iconFont, fontPackage: iconFontPackage, matchTextDirection: true);
通过 CupertinoIcons.left_chevron 获取 IconData 类型的数据