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

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

相关推荐
LuiChun8 小时前
webview_flutter 4.10.0 技术文档
flutter
ssslar8 小时前
FLUTTER 开发资料集(持续更新)
flutter
taopi20248 小时前
ios打包:uuid与udid
ios·iphone·ipad
LuiChun9 小时前
webview_flutter_wkwebview 3.17.0使用指南
flutter
愿天深海13 小时前
Flutter TextPainter 计算文本高度和行数
flutter
LuiChun14 小时前
webview_flutter_android 4.3.0使用
android·flutter
小鹿撞出了脑震荡19 小时前
Effective Objective-C 2.0 读书笔记——关联对象
开发语言·ios·objective-c
小鹿撞出了脑震荡19 小时前
Effective Objective-C 2.0 读书笔记—— objc_msgSend
ios·objective-c·xcode
fareast_mzh19 小时前
Customize ringtone on your iPhone
ios·iphone
Android西红柿1 天前
flutter-android混合编译,原生接入
android·flutter