最近观察到一个问题 , 普通 Run 构建的 Debug Flutter包一切正常 , 但是 Release 后经常在某些页面 UI 错乱 , 有点类似前端 CSS 丢失时候的表现. 最后发现问题是出在三方插件 screen_util

在高版本的 Flutter 中, 在调用 ScreenUtil.ensureScreenSize(); 时需要保持异步执行,否则不能确保执行完成 , 导致使用到插件的界面会几率错乱, 即改为

await ScreenUtil.ensureScreenSize(); 若之前调用的地方不方便修改方法为异步的, 就直接在初始化的时候套一层 ScreenUtilInit 进行初始化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class App extends StatelessWidget {
const App({super.key});

@override
Widget build(BuildContext context) {
return ScreenUtilInit(
designSize: const Size(393, 852),
minTextAdapt: true,
splitScreenMode: true,
builder: (ctx,index){
return GetMaterialApp(
getPages: RouteConf.getPages,
builder: EasyLoading.init(),
);
},
);
}
}

参考链接

CSDN