Flutter 动静更改应用程序启动图标
前言
在这篇文章中,咱们将探讨如何在运行时在咱们的 flutter 应用程序中动静更改多个应用程序启动器图标。
依赖包
一个用于动静更改挪动平台上应用程序图标 flutter 插件。
https://pub.dev/packages/flut...
注释
施行
思考到咱们曾经筹备好了根本的 UI (蕴含图像和晋升的按钮 widget )。
import 'package:flutter/material.dart';class MyHomePage extends StatefulWidget { const MyHomePage({Key? key, required this.title}) : super(key: key); final String title; @override State<MyHomePage> createState() => _MyHomePageState();}class _MyHomePageState extends State<MyHomePage> { int iconIndex = 0; List iconName = <String>['icon1', 'icon2', 'icon3']; @override Widget build(BuildContext context) { return Scaffold( appBar: buildAppBar(appBarTitle: widget.title), body: Padding( padding: EdgeInsets.all(kSpacing), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ buildIconTile(0, 'red'), buildIconTile(1, 'dark'), buildIconTile(2, 'blue'), HeightSpacer(myHeight: kSpacing), PrimaryBtn( btnFun: () => changeAppIcon(), btnText: 'Set as app icon'), ], )), ); } Widget buildIconTile(int index, String themeTxt) => Padding( padding: EdgeInsets.all(kSpacing / 2), child: GestureDetector( onTap: () => setState(() => iconIndex = index), child: ListTile( contentPadding: const EdgeInsets.only(left: 0.0, right: 0.0), leading: Image.asset( imagefiles[index], width: 45, height: 45, ), title: Text(themeTxt, style: const TextStyle(fontSize: 25)), trailing: iconIndex == index ? const Icon( Icons.check_circle_rounded, color: Colors.green, size: 30, ) : Icon( Icons.circle_outlined, color: Colors.grey.withOpacity(0.5), size: 30, )), ), ); changeAppIcon() {}
onpress 事件
当初咱们须要在晋升按钮 widget 的 onpress 事件[ changeAppIcon {}]中编写更改应用程序启动器图标的逻辑。
changeAppIcon() async { try { if (await FlutterDynamicIcon.supportsAlternateIcons) { await FlutterDynamicIcon.setAlternateIconName(iconName[iconIndex]); debugPrint("App icon change successful"); return; } } catch (e) { debugPrint("Exception: ${e.toString()}"); } debugPrint("Failed to change app icon "); }
这样,咱们实现了配置动静应用程序图标的编码局部。
ios 配置
当初,为了让这个个性工作起来,咱们须要在 info.plist 文件中增加一些更改,这些更改存在于我的项目的 ios 文件夹中。
因而,咱们须要通过右键单击 IOS 文件夹在 xCode 中关上该我的项目。
Something (留神: 这个个性针对 iOS 平台,所以咱们须要一个 macOS 设施来设置它)。
在 xCode 中关上我的项目之后,尝试在 Runner/Runner 文件夹中增加应用程序图标图像,如下所示。
接下来,咱们须要设置 info.plist 文件(依照上面给出的步骤)。
将图标文件(iOS5)增加到信息属性列表。
在下面创立的图标文件(ios 5)中增加 CFBundleAlternateIcon 作为字典。
在 CFBundleAlternateIcon 下创立 3 个字典,名称与图标图像文件名类似(在咱们的示例中是 icon1、 icon2 和 icon3)
对于每个字典(icon1、 icon2 和 icon3) ,须要创立两个属性ーー UIPrerenderedIcon 和 CFBundleIconFiles。
最初,将 CFBundleIconFiles 更改为和一个数组,并将 item0 的值作为 icon1、 icon2 和 icon3 增加到各自的字典中。
当初运行 cmds,
flutter cleanflutter pub get
就是这样,运行代码查看它的运行状况
结束语
如果本文对你有帮忙,请转发让更多的敌人浏览。
兴许这个操作只有你 3 秒钟,对我来说是一个激励,感激。
祝你有一个美妙的一天~
© 猫哥
- 微信 ducafecat
- https://wiki.ducafecat.tech
- https://video.ducafecat.tech
本文由mdnice多平台公布