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

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

相关推荐
风华圆舞27 分钟前
在 Flutter 鸿蒙项目里接入文本转语音的完整思路
flutter·华为·harmonyos
秋雨梧桐叶落莳2 小时前
iOS——QQ音乐仿写项目总结
学习·macos·ui·ios·mvc·objective-c·xcode
勤劳打代码4 小时前
翻江倒海——滚动布局下拉视图管理
flutter·前端框架·开源
iUNPo4 小时前
WWDC26 技术解读:Apple Intelligence、Siri AI 与苹果生态的下一步
macos·ios·wwdc
spmcor4 小时前
Flutter 学习笔记 (6):路由与导航 —— 从基础 push/pop 到 go_router
flutter
代码的小搬运工5 小时前
【iOS】谓词与正则表达式
ios
恋猫de小郭5 小时前
解析华为 DevEco Code 和小米 MiMo Code,都基于 OpenCode ,有什么区别?
android·前端·ios
wjm04100619 小时前
ios内存管理
ios·objective-c·swift·客户端开发
黑科技iOS上架19 小时前
ios应用被封号后再次上架很难么?
经验分享·ios
柚鸥ASO优化1 天前
一篇讲透安卓ASO!开发者千万别只盯着iOS了
android·ios·aso优化