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

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

相关推荐
武玄天宗10 小时前
第四章、用flutter创建登录界面
flutter
搬砖的kk10 小时前
基于Flutter开发应用如何快速适配HarmonyOS
flutter·华为·harmonyos
昼-枕11 小时前
Flutter深度解析:如何构建高性能、跨平台的移动应用
flutter
音浪豆豆_Rachel12 小时前
Flutter 与原生通信的桥梁:深入解析 Pigeon 与后台线程通信
flutter·harmonyos
音浪豆豆_Rachel13 小时前
Flutter跨平台通信的智能配置:Pigeon注解配置与鸿蒙生态深度集成
flutter·华为·harmonyos
Bryce李小白13 小时前
深入理解WidgetsFlutterBinding
flutter
开心_开心急了13 小时前
Ai加Flutter实现自定义标题栏(appBar)
前端·flutter
全栈派森14 小时前
Flutter 实战:基于 GetX + Obx 的企业级架构设计指南
前端·flutter
LorrestGump14 小时前
手游 iOS SDK 改用 CocoaPods 集成
ios