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

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

相关推荐
火柴就是我6 小时前
学习一些常用的混合模式之BlendMode. SRC_ATOP
flutter
火柴就是我8 小时前
学习一些常用的混合模式之BlendMode.srcIn
flutter
恋猫de小郭8 小时前
罗技鼠标因为服务器证书过期无法使用?我是如何解决 SSL 证书问题
android·前端·flutter
程序员老刘9 小时前
ArkUI-X 6.0 跨平台框架能否取代 Flutter?
flutter·客户端·arkui
火柴就是我9 小时前
学习一些常用的混合模式之BlendMode.srcOut
flutter
yfmingo11 小时前
flutter 哪些任务是在微队列,哪些是在事件队列
flutter
茅根竹蔗水__11 小时前
iOS应用(App)生命周期、视图控制器(UIViewController)生命周期和视图(UIView)生命周期
ios
kirk_wang13 小时前
Flutter环境搭建与项目创建详解
flutter·移动开发·跨平台