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

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

相关推荐
天天开发5 小时前
Flutter每日库: image_picker选取相册图片视频
flutter
消失的旧时光-19437 小时前
Flutter 组件:StatelessWidget vs StatefulWidget
flutter
天意__7 小时前
Flutter 聊天界面使用ListView的reverse:true,导致条目太少的时候会从下往上显示,导致顶部大片空白
flutter
汤面不加鱼丸7 小时前
flutter实践:混合app在部分android旧机型上显示异常
android·flutter
火柴就是我7 小时前
flutter 为什么大家说不能在initState 方法中调用dependOnInheritedWidgetOfExactType
flutter
ajassi20009 小时前
开源 Objective-C IOS 应用开发(十四)传感器--陀螺仪和gps
ios·开源·objective-c
二流小码农10 小时前
鸿蒙开发:支持自定义组件的跑马灯
android·ios·harmonyos
2501_9151063212 小时前
iOS 抓包全流程指南,HTTPS 抓包、TCP 数据流分析与多工具协同的方法论
android·tcp/ip·ios·小程序·https·uni-app·iphone
3***499620 小时前
Swift Experience
开发语言·ios·swift
疯笔码良1 天前
【IOS开发】Objective-C 与 Swift 的对比
ios