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

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

相关推荐
库奇噜啦呼3 小时前
【iOS】NSOperation与NSOperationQueue
macos·ios·cocoa
二流小码农5 小时前
鸿蒙开发:实现文本渐变效果
android·ios·harmonyos
山璞7 小时前
将一个 Flutter 项目转为用 ArkUI-X 框架实现(4)
flutter·harmonyos
GitLqr9 小时前
彻底搞懂 Dart Stream:从底层原理到 Flutter 实战与面试题集
flutter·响应式编程·dart
WiresharkClub12 小时前
抓包遇到私有协议全是乱码?抓包鹰自定义协议解码教程
ios
louisgeek13 小时前
Flutter Visibility 和 Offstage 的区别
flutter
YM52e1 天前
鸿蒙Flutter Padding内边距:EdgeInsets详解
android·学习·flutter·华为·harmonyos·鸿蒙
Lvan的前端笔记1 天前
ios:版本号和Build构建号
ios
SharpCJ1 天前
Dart 基础入门
flutter·dart
鹤卿1231 天前
「iOS」3GShare总结
macos·ios·objective-c·cocoa