【Flutter 必备插件】屏幕适配方案 flutter_screenutil
2026-02-03
【Flutter 必备插件】屏幕适配方案 flutter_screenutil 关注 作者 关注 作者 关注 作者 关注 作者 2025/07/18 18:01
flutter 屏幕适配方案,用于调整屏幕和字体大小的 flutter 插件,让你的 UI 在不同尺寸的屏幕上都能显示合理的布局! xnxx 电影爱壹帆 华人影视 iyf 爱壹帆电影 小宝影院 aiyifan电影 xxxvideo 小宝影院 会所 楼凤信息
初始化设计稿尺寸
main.dart 爱壹帆国际版 海外华人视频网 小宝影院电影 小宝影院 电影小宝影院 xxx 小宝影院在线视频 爱壹帆 爱一帆电影 电影aiyifan 电影aiyifan xxxxxx 小宝影院在线视频 会所
@override
Widget build(BuildContext context) {
return ScreenUtilInit(
designSize: const Size(375, 812), // 设计稿的尺寸
minTextAdapt: true, // 文字适配,防止字体过小
builder: (context, child) {
return MaterialApp.router(
routerConfig: AppRouter.router,
debugShowCheckedModeBanner: false,
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: const Color(0xFFFF9900)),
useMaterial3: true,
),
);
}
);
}
在代码中使用适配单位
1. 基本单位
- .w 根据屏幕宽度适配
- .h 根据屏幕高度适配
- .r 根据宽/高中较小者适配(常用于圆角)
Container(
width: 200.w, // 相当于设计稿中 200 的宽度
height: 100.h, // 相当于设计稿中 100 的高度
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10.r), // 自适应圆角
),
);
2. 字体适配
- .sp 根据屏幕宽度或高度自适应文本(推荐优先使用宽度)
Text(
'Hello ScreenUtil',
style: TextStyle(fontSize: 24.sp),
);
设置字体不随系统字体大小进行改变 爱壹帆免费版 xxxx 小寶影院 xxxxx 爱一帆 爱壹帆在线 小姐 外围 约炮 会所
APP 全局: aiyifan 爱壹帆影视 xxxxxx 爱壹帆 免费在线影院 ifun 小寶影院电影 海外华人视频网 探花
@override
Widget build(BuildContext context) {
return ScreenUtilInit(
designSize: const Size(375, 812), // 设计稿的尺寸
minTextAdapt: true, // 文字适配,防止字体过小
builder: (context, child) {
return MaterialApp.router(
routerConfig: AppRouter.router,
debugShowCheckedModeBanner: false,
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: const Color(0xFFFF9900)),
useMaterial3: true,
),
builder: (context, widget) {
return MediaQuery(
///设置文字大小不随系统设置改变
data: MediaQuery.of(context).copyWith(textScaler: TextScaler.linear(1.0)),
child: widget!,
);
}
);
}
);
}
3. API
ScreenUtil().screenWidth; // 屏幕宽度
ScreenUtil().screenHeight; // 屏幕高度
ScreenUtil().pixelRatio; // 设备像素密度
ScreenUtil.bottomBarHeight //底部安全区距离,适用于全面屏下面有按键的
ScreenUtil.statusBarHeight //状态栏高度 刘海屏会更高
ScreenUtil.textScaleFactor //系统字体缩放比例
ScreenUtil().scaleWidth // 实际宽度设计稿宽度的比例
ScreenUtil().scaleHeight // 实际高度与设计稿高度度的比例
ScreenUtil().orientation //屏幕方向
0.2.sw //屏幕宽度的0.2倍
0.5.sh //屏幕高度的50%
20.setVerticalSpacing // SizedBox(height: 20 * scaleHeight)
20.horizontalSpace // SizedBox(height: 20 * scaleWidth)
const RPadding.all(8) // Padding.all(8.r) - 获取到const的优点
EdgeInsets.all(10).w //EdgeInsets.all(10.w)
REdgeInsets.all(8) // EdgeInsets.all(8.r)
EdgeInsets.only(left:8,right:8).r // EdgeInsets.only(left:8.r,right:8.r).
BoxConstraints(maxWidth: 100, minHeight: 100).w //BoxConstraints(maxWidth: 100.w, minHeight: 100.w)
Radius.circular(16).w //Radius.circular(16.w)
BorderRadius.all(Radius.circular(16)).w
00目录 0