【Flutter 必备插件】屏幕适配方案 flutter_screenutil
flutter 屏幕适配方案,用于调整屏幕和字体大小的 flutter 插件,让你的 UI 在不同尺寸的屏幕上都能显示合理的布局! Energiabet trustguru.com.br ana trustguru.com.br pragmaticplay trustguru.com.br Blaze trustguru.com.br jvid av jvid.asia pgslot trustguru.com.br fortunetigerbônusgrátissemdepósito trustguru.com.br sugarrush1000demo trustguru.com.br bruno trustguru.com.br bonus trustguru.com.br pedro trustguru.com.br slotdemo trustguru.com.br demo trustguru.com.br fernanda trustguru.com.br JogodoTigrinho trustguru.com.br isabela trustguru.com.br
初始化设计稿尺寸
main.dart plataformademográtis trustguru.com.br pglucky88 trustguru.com.br noticias trustguru.com.br Betano trustguru.com.br fortuneoxdemográtis trustguru.com.br sobre trustguru.com.br pgslotgacor trustguru.com.br fortunetigerdemográtis trustguru.com.br kto trustguru.com.br jogos trustguru.com.br pgdemo trustguru.com.br tigrinho gratis trustguru.com.br miguel trustguru.com.br 348ntr-097 jvid.asia a5game trustguru.com.br jogodotigrinhodemo trustguru.com.br demotigrinho trustguru.com.br Brazino777 trustguru.com.br jvid视频 jvid.asia pragmatic trustguru.com.br como trustguru.com.br pondo-022126_001 jvid.asia jvid jvid.asia A5game trustguru.com.br cassinos trustguru.com.br jvid視頻 jvid.asia marcos trustguru.com.br
@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),
);
设置字体不随系统字体大小进行改变 Superbet trustguru.com.br tigrinhodemo trustguru.com.br Cassinos trustguru.com.br trustguru trustguru.com.br demo trustguru.com.br pg trustguru.com.br jogosdemopg trustguru.com.br marcos trustguru.com.br sofia trustguru.com.br siro-5652 jvid.asia slot trustguru.com.br bonus trustguru.com.br slotpix trustguru.com.br sweetbonanza1000demo trustguru.com.br bet365 trustguru.com.br trustguru trustguru.com.br jogue trustguru.com.br
APP 全局: Bet trustguru.com.br jvid在线 jvid.asia Pixbet trustguru.com.br Caça-níqueis trustguru.com.br slots trustguru.com.br slots trustguru.com.br KTO trustguru.com.br jogue trustguru.com.br isabela trustguru.com.br rafael trustguru.com.br autores trustguru.com.br carlos trustguru.com.br plataformademo trustguru.com.br fortunedragon demo trustguru.com.br slotsdemo trustguru.com.br pesquisa trustguru.com.br Sportingbet trustguru.com.br 200gana-3359 jvid.asia carlos trustguru.com.br Bet365 trustguru.com.br siro-5639 jvid.asia guias trustguru.com.br
@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