Skip to content

图标

概述

NativePHP EDGE 组件使用智能图标映射系统,自动将图标名称转换为平台特定的图标。在 iOS 上,图标渲染为 SF Symbols,而 Android 使用 Material Icons

你不需要担心差异!只需在组件中使用单一、一致的图标名称,EDGE 会自动处理平台转换。

工作原理

图标系统使用四层解析策略:

  1. 直接平台图标 - 在 iOS 上,如果名称包含 .,它会被用作直接的 SF Symbol 路径(例如 car.side.fill)。在 Android 上,任何 Material Icon 连字名称都可以直接使用(例如 shopping_cart)。
  2. 手动映射 - 常见图标和别名的显式映射(例如 homesettingsuser
  3. 智能回退 - 尝试将未映射的图标名称自动转换为平台等效项
  4. 默认回退 - 如果找不到匹配项,使用圆形图标

这种方法意味着你可以对常见情况使用直观的图标名称,对高级用例利用直接的平台图标,并在 iOS 和 Android 上获得一致的结果。

平台差异

iOS (SF Symbols)

在 iOS 上,图标渲染为 SF Symbols。手动映射将常见图标名称转换为其 SF Symbol 等效项。例如:

  • homehouse.fill
  • settingsgearshape.fill
  • checkcheckmark.circle.fill

如果图标名称未被手动映射,系统会尝试通过尝试 .fill.circle.fill.square.fill 等变体来查找匹配的 SF Symbol。

Android (Material Icons)

在 Android 上,图标使用支持整个 Material Icons 库的轻量级基于字体的方法渲染。你可以直接使用任何 Material Icon 的连字名称(例如 shopping_cartqr_code_2)。

手动映射为常见图标名称提供便捷的别名。例如:

  • homehome
  • settingssettings
  • checkcheck
  • cartshopping_cart

直接平台图标

对于高级用例,你可以直接使用平台特定的图标名称。

iOS SF Symbols

在 iOS 上,在图标名称中包含 . 以直接使用 SF Symbol 路径:

blade
<native:bottom-nav-item icon="car.side.fill" ... />
<native:bottom-nav-item icon="flashlight.on.fill" ... />
<native:bottom-nav-item icon="figure.walk" ... />

Android Material Icons

在 Android 上,使用任何 Material Icon 连字名称(带下划线):

blade
<native:bottom-nav-item icon="qr_code_2" ... />
<native:bottom-nav-item icon="flashlight_on" ... />
<native:bottom-nav-item icon="space_dashboard" ... />

平台特定图标

当你需要在每个平台上使用不同的图标时,使用 System facade:

blade
<native:bottom-nav-item
    id="flashlight"
    icon="{{ \Native\Mobile\Facades\System::isIos() ? 'flashlight.on.fill' : 'flashlight_on' }}"
    label="Flashlight"
    url="/flashlight"
/>

当映射的图标不符合你的需求或你想使用平台特定变体时,这很有用。

基本用法

在任何支持图标的 EDGE 组件中使用 icon 属性,只需传递你想使用的图标名称:

blade
<native:bottom-nav-item
    id="home"
    icon="home"
    label="Home"
    url="/home"
/>

图标参考

此处列出的所有图标都经过手动映射,保证在 iOS 和 Android 上一致工作。

导航

图标描述
dashboard网格式仪表盘视图
home房屋/主屏幕
menu三横线汉堡菜单
settings齿轮/设置
accountprofileuser用户账户或个人资料
person单人
peopleconnectionscontacts多人
groupgroups人群

商业和商务

图标描述
ordersreceipt收据或订单
cartshopping购物车
shopstore商店或店面
productsinventory产品或库存

图表和数据

图标描述
chartbarchart条形图
analytics分析
summaryreportassessment摘要或报告

时间和日程

图标描述
clockscheduletime时钟或时间
calendar日历
history历史或最近

操作

图标描述
addplus添加或创建新项
edit编辑或修改
delete删除或移除
save保存
search搜索
filter筛选
refresh刷新或重新加载
share分享
download下载
upload上传

通信

图标描述
notifications通知或提醒
message消息或短信
emailmail电子邮件
chat聊天或对话
phone电话或通话

导航箭头

图标描述
back返回或上一步
forward前进或下一步
up向上箭头
down向下箭头

状态

图标描述
checkdone勾选或完成
close关闭或取消
warning警告
error错误
info信息

认证

图标描述
login登录
logoutexit登出或退出
lock已锁定
unlock已解锁

内容

图标描述
favoriteheart收藏或喜欢
star星标或评分
bookmark书签
imagephoto图片或照片
image-plus添加照片
video视频
folder文件夹
folder-lock锁定的文件夹
filedescription文档或文件
book-open书籍
newspapernewsarticle新闻或文章

设备和硬件

图标描述
camera相机
qrqrcodeqr-code二维码扫描器
device-phone-mobilesmartphone手机
vibrate振动
bell铃铛或通知
finger-printfingerprint指纹或生物识别
light-bulblightbulbflashlight灯泡或手电筒
maplocation地图或位置
globe-altglobeweb地球或网络
boltflash闪电或闪光

音频和音量

图标描述
speakerspeaker-wave有声扬声器
volume-up增大音量
volume-down减小音量
volume-mutemute静音
volume-off关闭音量
musicaudiomusic-note音乐或音频
microphonemic麦克风

其他

图标描述
help帮助或问题
aboutinformation-circle信息或关于
more更多选项
list列表视图
visibility可见
visibility_off隐藏

最佳实践

图标具有含义,大多数用户会将图标的视觉提示与跨应用程序的底层行为或部分相关联。因此,尝试保持图标的一致使用,以帮助引导用户浏览你的应用。

  • 保持一致 - 在整个应用中对相同的操作使用相同的图标名称
  • 在两个平台上测试 - 如果你使用自动转换的图标,请验证它们在 iOS 和 Android 上正确显示

查找图标

Android Material Icons

Google Fonts Icons 浏览完整的 Material Icons 库。完全按照显示的方式使用图标名称(带下划线,例如 shopping_cartqr_code_2)。

iOS SF Symbols

使用此社区 Figma 文件浏览 SF Symbols。虽然不全面,但这是发现可用符号的一个很好的起点。

要获取完整的库,请为 macOS 下载 SF Symbols 应用

提示

SF Symbol 名称使用点(例如 house.fill),而 Material Icon 名称使用下划线(例如 shopping_cart)。

基于 NativePHP 官方文档翻译