Flutter IOS 前后台切换主题自动变化的问题

BUG 触发条件

  • 设备 IOS 15 模拟器
  • GetX 实现换肤
  • GetMaterialApp 里面配置好 theme和darkTheme
  • 使用GetView和GetController进行开发

此时如果把App前后台切换,使用Obx包括起来的内容会跟谁异常主题变换,未使用Obx的颜色不会变化。

解决路径

首先在获取 lightTheme 和 darkTheme 进行断点,发现在切换到后台的时候会重新获取,猜测它应该是在进入后台的时候对主题进行了保存,但是存储机制可能是错误的。

既然存储异常了,就在进入后台之前再重新设置一遍主题好了;这里使用 WidgetsBinding 进行监听

复制代码
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
  super.didChangeAppLifecycleState(state);
  if(state == AppLifecycleState.paused) {
    /// 重新设置主题
  }
}

重新测试一下,问题解决。

相关推荐
开开心心loky22 分钟前
[OC 底层] (三) 方法缓存与消息发送机制
macos·ios·缓存·objective-c·cocoa
5008442 分钟前
HCCL 集合通信编程:多卡协同的正确姿势
java·flutter·性能优化·electron·wpf
你听得到113 小时前
从 Figma 走查到 AI 可验证产物:我如何重构客户端 UI 交付链路
前端·vue.js·flutter
开开心心loky4 小时前
[OC 底层] (四) 多线程相关内容
macos·ios·objective-c·cocoa
song5014 小时前
昇腾 910 的硬件架构:为什么它适合跑大模型
图像处理·人工智能·分布式·flutter·硬件架构·交互
恋猫de小郭5 小时前
Dart 大更新,新增语法糖和各种能力,真的难得了
android·前端·flutter
秋雨梧桐叶落莳6 小时前
iOS——UIStackView学习
学习·macos·ios·objective-c·cocoa
莞凰17 小时前
昇腾CANN的“御剑飞行“:ATB仓库探秘
人工智能·flutter·transformer
QQ34634815719 小时前
Flutter_01 工具准备1
flutter
QQ3463481571 天前
Flutter_02 工具准备2-2
flutter