app总是会出现从后台切换到前台时候,出现黑屏,断断续续找了几周,从frame_page.dart里面的initState和didChangeAppLifecycleState开始查,最后用排除法,终于发现问题在main.dart里的ScreenUtilInit。
因为新项目用了screen_util 5.0版本,初始化方式改为了在main.dart中
找到bug
class MyApp extends StatelessWidget{
@override
Widget build(BuildContext context){
return ScreenUtilInit(
designSize:Size(360,690),//页面设计尺寸
builder:(context,widget){
return MaterialApp(...);
}
);
}
}
修复bug
后来查了很多资料,发现ScreenUtilInit有时候得到的宽度是0,会黑屏,于是换了种初始化方式,改在frame_page中初始化,
更好的初始化方式:
main.dart
void main() async{
await ScreenUtil.ensureScreenSize();
runApp();
}
frame_page.dart:
class _PageFrameState extends State<PageFrame>{
@override
Widget build(BuildContext context){
ScreenUtil.init(context, designSize:Size(360,690));
...
}
}
这个问题终于解决了
网友评论