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

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

相关推荐
MonkeyKing2 小时前
iOS dyld加载流程与App启动原理(pre-main阶段)详解
ios
MonkeyKing2 小时前
iOS类加载全解析:map_images、load_images、initialize调用时机
ios
帅次2 小时前
LazyColumn 懒加载、items 与 key
android·flutter·kotlin·android studio·webview
美狐美颜SDK开放平台3 小时前
什么是美颜SDK?高并发场景下的企业级美颜SDK如何开发?
android·人工智能·ios·美颜sdk·第三方美颜sdk·视频美颜sdk
90后的晨仔3 小时前
SwiftUI 数据持久化完全指南:从偏好设置到企业级存储
ios·axios
90后的晨仔4 小时前
SwiftUI 高级特性第3章:环境与偏好设置
ios
恋猫de小郭5 小时前
经典,Flutter iOS 又修复了一个构建问题,还是很抽象
android·前端·flutter
Digitally5 小时前
如何将短信从 iPhone 传输到 Mac?
macos·ios·iphone
MonkeyKing71555 小时前
iOS 开发 UIView 与 CALayer 关系及渲染流程
ios·面试