如何在Flutter的local_notification中修改通知图标?
修改local_notification通知图标后续操作指南
针对Android和iOS平台,你需要分别完成以下操作:
Android 平台
- 生成符合要求的通知专用图标:通知图标必须是透明背景的单色(白色)图标,普通ic_launcher如果带背景色,会被系统处理成白色方块。打开Android Studio,右键点击
res目录 → New → Image Asset,选择Notification Icon类型,按向导生成不同分辨率的图标(命名比如ic_notification),生成后会自动放到res/mipmap-xxxhdpi等对应目录。 - 配置全局默认图标:在
AndroidManifest.xml中添加meta-data标签,指定全局默认的通知图标:<meta-data android:name="com.dexterous.flutterlocalnotifications.default_notification_icon" android:resource="@mipmap/ic_notification" /> - 初始化时指定图标:在Flutter代码初始化
FlutterLocalNotificationsPlugin时,设置Android初始化参数的icon字段:const AndroidInitializationSettings initializationSettingsAndroid = AndroidInitializationSettings('@mipmap/ic_notification'); - 清理缓存重建:执行
flutter clean清除旧缓存,再重新运行项目flutter run,避免旧图标残留。
iOS 平台
- 添加通知专用图标:打开iOS项目的
Assets.xcassets,添加Notification图标集,上传对应尺寸的透明背景图标(推荐尺寸:20x20、29x29、40x40、58x58、80x80等,按2x、3x分辨率准备)。 - 无需额外代码配置,iOS系统会自动使用这个图标作为通知图标,但要确保Xcode中已正确导入图标资源。
额外提示
如果需要给单个通知指定不同图标,在创建AndroidNotificationDetails时,手动设置icon参数即可:
AndroidNotificationDetails androidDetails = AndroidNotificationDetails( 'channel_id', 'channel_name', icon: 'ic_custom_notification', // 这里指定自定义图标名 );
内容的提问来源于stack exchange,提问作者karan duggal
相关产品推荐
相关产品推荐

