報錯如下
原因
我們在佈局中使用ScreenUtil().screenWidth獲取螢幕寬度是,在初始化未裝載檢視時,第一次獲取時拿不到,會出現如上的崩潰。
解決方案
import 'package:flutter_screenutil/screenutil_init.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
@override
Widget build(BuildContext context) {
//使用螢幕初始化包裹整個body佈局
return ScreenUtilInit(
//設定初始化螢幕大小
designSize: Size(375, 812),
builder: () => Scaffold(
backgroundColor: WBColors.color_f4f5f7,
body: Container(
height: 263.5,
width: ScreenUtil().screenWidth,
)
)
);
}
- 使用ScreenUtilInit螢幕初始化元件包裹整個頁面佈局最外層
- 設定螢幕初始大小
- body裡面可任意使用獲取螢幕寬高的API了