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

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

相关推荐
Utopia^10 小时前
鸿蒙flutter第三方库适配 - 联系人备份工具
flutter·华为·harmonyos
90后的晨仔10 小时前
第5章:基础状态管理
ios
90后的晨仔11 小时前
第4章:基础布局系统
ios
90后的晨仔12 小时前
第3章:基础视图组件
ios
念格16 小时前
Flutter 仿微信输入框最佳实践:自适应高度 + 超行数智能切换全屏
前端·flutter
程序员老刘17 小时前
《Flutter跨平台开发核心技巧与应用》新书来了
flutter·ai编程·客户端
Digitally17 小时前
iTunes 无法连接到此 iPhone - 9 种解决方法
ios·iphone
空中海18 小时前
7.1 Flutter 性能模型
flutter
weixin_4434785118 小时前
Flutter学习之第三方组件:视频播放器控件
学习·flutter·音视频
2501_9160074720 小时前
iOS逆向工程:详细解析ptrace反调试机制的破解方法与实战步骤
android·macos·ios·小程序·uni-app·cocoa·iphone