OpenFlutter / flutter_screenutil

Flutter screen adaptation, font adaptation, get screen information

Home Page:https://pub.dartlang.org/packages/flutter_screenutil

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Android 后台切换到前台过程中,有几率出现黑屏

naivetoby opened this issue · comments

频繁使用 App 一天遇到不超过 3 次,华为概率比较高。

遇到这种问题的时候,只需要手机锁屏一下再解锁,黑屏消失,显示恢复正常。

原初始化方式为

ScreenUtilInit(
    designSize: const Size(375, 814),
    builder: (_, __) {
        return MaterialApp()
    }
)

Flutter: 3.13.2 beta (August 07, 2023)
flutter_screenutil: ^5.8.4

可能是 Flutter 优化了启动方式,导致 ScreenUtilInit 获取的宽高可能为 0,造成渲染错误。

参考链接:

https://zhuanlan.zhihu.com/p/632774669

优化后初始化方式为

void main() async {
  // FIXME 解决黑屏
  await ScreenUtil.ensureScreenSize();

  runApp(MyApp());
}

return MaterialApp(
    builder: (context, child) {
        // FIXME 初始化 ScreenUtil
        ScreenUtil.init(
           context,
           designSize: const Size(375, 814),
        );
        // 其他代码
    }
);

效果未知,目前还在观察中。。。

切换成 flutter_screenutil: 5.9.0-beta 已解决这个问题