Widget build(BuildContext context) {
return ScreenUtilInit(
designSize: const Size(375, 812), // 配置设计图尺寸大小,单位:dp
builder: (context, child) => GetMaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
),
builder: EasyLoading.init(),
initialBinding: InitBinding(),
// 初始路由会被 InitBinding 覆盖
initialRoute: AppRoutes.initialRoute,
getPages: AppRoutes.getPages,
)
);
}
.w
:宽度适配使用场景:
dp
单位来设置控件的宽度时,使用 .w
来适配屏幕宽度。实际场景: 假设设计图中的按钮宽度是 200dp
,你想在不同的屏幕尺寸上保持一致的宽度。
Container(
width: 200.w, // 宽度根据屏幕宽度自动缩放
height: 50.h, // 高度根据屏幕高度自动缩放
color: Colors.blue,
child: Center(child: Text('Button')),
)
在大屏设备上,按钮的宽度会更大,而在小屏设备上,宽度会更小,确保适配。
.h
:高度适配使用场景:
dp
单位来设置控件的高度时,使用 .h
来适配屏幕高度。实际场景: 假设设计图中的按钮高度是 50dp
,你希望在不同设备的屏幕上高度适配。
Container(
width: 100.w,
height: 50.h, // 高度适配屏幕高度
color: Colors.blue,
child: Center(child: Text('Button')),
)
.sp
:字号适配使用场景:
sp
)在设计图中通常是一个重要的参数,需要根据不同设备的屏幕密度进行缩放。实际场景: 假设设计图中的字体大小是 16sp
,你需要根据设备的屏幕密度来调整字号:
Text(
'Hello World',
style: TextStyle(
fontSize: 16.sp, // 字号根据屏幕适配
),
)
这样,字体在不同的屏幕上显示的大小会一致,确保用户体验的一致性。
.r
:圆角适配使用场景:
实际场景: 假设设计图中卡片的圆角半径是 8dp
,你可以使用 .r
来自动适配屏幕:
Container(
width: 200.w,
height: 100.h,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(8.r), // 自动适配圆角半径
),
child: Center(child: Text('Card')),
)
这样,圆角在所有设备上看起来都是一致的,不会因为屏幕尺寸的不同而显得过大或过小。
.textScaleFactor
:字体缩放因子使用场景:
textScaleFactor
会根据这个设置来调整字体大小。实际场景: 如果用户在系统设置中增加了字体大小,你可以使用 textScaleFactor
来自动适配文本:
Text(
'Hello World',
style: TextStyle(
fontSize: 16.sp * ScreenUtil().textScaleFactor, // 适配字体缩放因子
),
)
这样,文本会根据用户的设置自动调整字体大小,而不会被强制放大或缩小。
.setWidth()
和 .setHeight()
:宽高自定义适配使用场景:
实际场景: 假设你希望设置一个控件的宽度为屏幕宽度的 70%,而高度为屏幕高度的 10%。
Container(
width: 100.setWidth(0.7), // 设置为屏幕宽度的 70%
height: 200.setHeight(0.1), // 设置为屏幕高度的 10%
color: Colors.blue,
child: Center(child: Text('Custom Size')),
)
.radius
:圆角半径适配(另一种方式)使用场景:
实际场景:
Container(
width: 200.w,
height: 100.h,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.all(Radius.circular(8.radius)), // 另一种圆角适配方式
),
child: Center(child: Text('Card')),
)
.w
和 .h
用于宽高适配,确保控件的尺寸根据屏幕的尺寸自动缩放。.sp
用于字号适配,确保字体大小在不同设备上的一致性,并且能适应用户的字体缩放设置。.r
用于圆角适配,确保圆角在不同屏幕上显示一致。.textScaleFactor
用于调整字体大小,适应系统字体大小的调整。.setWidth()
和 .setHeight()
用于根据屏幕宽度或高度比例自定义控件尺寸。