Flutter使用ScreenUtil獲取螢幕寬高初始化報錯

淺夏晴空發表於2021-11-22

報錯如下

原因

我們在佈局中使用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了

相關文章