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

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

相关推荐
吴Wu涛涛涛涛涛Tao11 小时前
基于TCA构建Instagram克隆:SwiftUI状态管理的艺术
ios·swiftui
stringwu15 小时前
Flutter 开发者必备:WebSocket 实用指南
flutter
小林的技术分享16 小时前
关于排查 Flutter 3.27.0 版本Android端无法禁用Impeller引擎的过程记录
前端·flutter
coder_pig1 天前
🤡 公司Android老项目升级踩坑小记
android·flutter·gradle
w_y_fan1 天前
双token机制:flutter_secure_storage 实现加密存储
前端·flutter
2501_915921431 天前
iOS 应用上架多环境实战,Windows、Linux 与 Mac 的不同路径
android·ios·小程序·https·uni-app·iphone·webview
dragon7252 天前
关于image组件设置宽高不生效问题的探究
flutter
会煮咖啡的猫2 天前
Flutter 是否需要 UI 组件库?
flutter
眼镜会飞2 天前
Flutter 3.x新版android端的build.gradle.kts文件配置arm64-v8a和armeabi-v7a等
android·前端·flutter
Cyclic10012 天前
IOS购买订阅通知信息解析说明Java
java·开发语言·ios