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

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

相关推荐
小a杰.6 小时前
Flutter 与 AI 深度集成指南:从基础实现到高级应用
人工智能·flutter
sweet丶9 小时前
UIWindowScene 使用指南:掌握 iOS 多窗口架构
ios
程序员老刘13 小时前
跨平台开发地图:客户端技术选型指南 | 2025年12月
flutter·客户端
一名普通的程序员13 小时前
使用 Flutter Pay 插件实现 Apple Pay 和 Google Pay 的完整指南
flutter
崽崽长肉肉14 小时前
swift中的知识总结(一)
ios·swift
麦客奥德彪14 小时前
Flutter riverpod 对应Android开发概念理解
flutter
tangweiguo0305198715 小时前
Kotlin vs Dart vs Swift:语法对比全解
flutter
feelingHy15 小时前
GetX 状态管理实践
flutter
tangweiguo0305198716 小时前
Flutter多品牌应用架构实战:从配置驱动到编译部署的完整解决方案
flutter
2501_9151063217 小时前
HTTP 协议详解,HTTP 协议在真实运行环境中的表现差异
网络·网络协议·http·ios·小程序·uni-app·iphone