flutter如何使用screenutils插件
在Flutter项目中引入screenutils插件后,如何正确使用它来适配不同屏幕尺寸?我在main.dart中初始化了ScreenUtil.init(),但在具体页面中调用ScreenUtil().setWidth(100)时效果不符合预期。请问具体的适配方案应该如何实现?是否需要配合MediaQuery一起使用?求详细的代码示例和最佳实践。
        
          2 回复
        
      
      
        在Flutter中使用screenutils插件,首先在pubspec.yaml中添加依赖,然后运行flutter pub get。在代码中导入包,调用ScreenUtil.init()初始化,使用ScreenUtil().setWidth()等方法适配不同屏幕尺寸。
更多关于flutter如何使用screenutils插件的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中使用screenutil插件可以方便地进行屏幕适配,支持不同尺寸的设备。以下是基本使用方法:
1. 添加依赖
在 pubspec.yaml 文件中添加依赖:
dependencies:
  flutter_screenutil: ^5.9.0  # 使用最新版本
2. 初始化配置
在 main.dart 的 build 方法中初始化,通常包裹 MaterialApp:
import 'package:flutter_screenutil/flutter_screenutil.dart';
void main() {
  runApp(MyApp());
}
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ScreenUtilInit(
      designSize: const Size(360, 690), // 设计稿尺寸(宽度、高度)
      minTextAdapt: true,
      splitScreenMode: true,
      builder: (context, child) {
        return MaterialApp(
          home: child,
        );
      },
      child: const HomePage(),
    );
  }
}
3. 使用适配方法
在Widget中通过扩展方法或 ScreenUtil 类进行尺寸和字体适配:
class HomePage extends StatelessWidget {
  const HomePage({super.key});
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Container(
          width: 100.w,    // 设计稿宽度的100单位(百分比)
          height: 50.h,    // 设计稿高度的50单位
          padding: EdgeInsets.all(10.r), // 适配圆角或边距
          child: Text(
            'Hello ScreenUtil',
            style: TextStyle(fontSize: 16.sp), // 字体适配
          ),
        ),
      ),
    );
  }
}
主要方法说明:
.w/.h:按设计稿比例适配宽高.sp:字体大小适配(考虑系统字体缩放).r:适配圆角或边距(基于宽度或高度较小者)
注意事项:
- 设计稿尺寸需根据UI设计图设置(如 
Size(375, 812)对应iPhone 13) - 建议使用扩展方法(如 
100.w)简化代码 - 对于需要精确控制的情况,可用 
ScreenUtil().setWidth(100) 
通过以上步骤即可快速实现Flutter应用的屏幕适配。
        
      
            
            
            
