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

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

相关推荐
世人万千丶31 分钟前
鸿蒙Flutter TextStyle样式配置
学习·flutter·harmonyos·鸿蒙
nice先生的狂想曲4 小时前
flutter中key的使用
flutter·客户端
常在士心7 小时前
Flutter Dio高阶封装&多级缓存策略
flutter
司素网7 小时前
Flutter Platform Channel 的 await 陷阱:为什么加与不加相差 100ms?
flutter
zengorange9 小时前
Dart语言
学习·flutter
YM52e10 小时前
鸿蒙Flutter Stack堆叠布局:实现多层级界面
学习·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
帅次10 小时前
Android 高级工程师面试:Flutter 渲染与性能 近1年高频追问 20 题
android·flutter·面试·渲染·性能
世人万千丶11 小时前
鸿蒙Flutter Icon与IconButton
flutter·华为·harmonyos·鸿蒙
_瑞11 小时前
AI Coding 那么快,为什么还需要 SDD?
人工智能·ios·ai编程
程序员老刘11 小时前
跨平台开发地图 | 2026年7月
flutter·ai编程·客户端