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) {
    /// 重新设置主题
  }
}

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

相关推荐
恋猫de小郭25 分钟前
Android 官方给 Compose 搞了个不需要 UI 环境的 Composable
android·前端·flutter
库奇噜啦呼2 小时前
【iOS】源码学习-SDWebImage源码学习
学习·ios
zuYM4g7Dp3 小时前
文顶顶iOS开发数据库篇—SQL
数据库·sql·ios
喵了几个咪4 小时前
基于 Flutter 的 Headless CMS 全平台前端架构:技术解析与二次开发导引
前端·flutter·架构
超梦dasgg4 小时前
APP 壳、加固、脱壳 完整通俗讲解(安卓为主,兼顾 iOS)
android·ios
恋猫de小郭4 小时前
真正的跨平台 AI 自动化框架,甚至还支持鸿蒙
android·前端·flutter
代码的小搬运工5 小时前
【iOS】MVC架构
ios·架构·mvc
鹤卿1235 小时前
iOS OC NSUserDefaults
macos·ios·objective-c
2601_955767425 小时前
移动OLED屏幕偏振光缺失的补偿方案:圆偏振光还原与磁控溅射AR协同光学系统设计
ios·ar·iphone·圆偏振光护眼·iphone17护眼钢化膜·#观复盾护景贴
sweet丶5 小时前
Swift async/await并发框架深入总结
ios