Flutter屏幕适配插件screenutil_module的使用

发布于 1周前 作者 zlyuanteng 来自 Flutter

Flutter屏幕适配插件screenutil_module的使用

screenutil_module #

此模块是juneflow项目的一部分,为Flutter项目提供了一个屏幕适配工具。

安装 #

  1. 如果juneflow项目不存在,请按照此指南创建。
  2. 在juneflow项目的根目录打开终端,输入以下命令:
june add screenutil_module

使用 #

你可以在官方文档中找到screenutil的使用方法。

完整示例代码

以下是一个完整的Flutter示例代码,展示如何使用screenutil_module进行屏幕适配:

import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // 初始化ScreenUtil
    ScreenUtil.init(context, designSize: Size(360, 640)); // 设计稿尺寸为360x640

    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('屏幕适配示例'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              // 使用ScreenUtil设置字体大小
              Text(
                '字体大小为16px',
                style: TextStyle(fontSize: 16.sp),
              ),
              SizedBox(height: 20.h), // 设置间距为20px
              Container(
                width: 100.w, // 宽度为100px
                height: 50.h, // 高度为50px
                color: Colors.blue,
                child: Center(
                  child: Text(
                    '按钮',
                    style: TextStyle(color: Colors.white),
                  ),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

代码说明:

  1. 初始化ScreenUtil

    ScreenUtil.init(context, designSize: Size(360, 640));
    • designSize 是设计稿的尺寸,通常为设计师提供的尺寸。
  2. 字体大小适配

    Text(
      '字体大小为16px',
      style: TextStyle(fontSize: 16.sp),
    )
    • 使用.sp将设计稿中的像素值转换为适配后的像素值。
  3. 间距适配

    SizedBox(height: 20.h)
    • 使用.h将设计稿中的高度值转换为适配后的高度值。
  4. 宽高适配

    Container(
      width: 100.w,
      height: 50.h,
    )

更多关于Flutter屏幕适配插件screenutil_module的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter屏幕适配插件screenutil_module的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


screenutil_module 是一个用于 Flutter 屏幕适配的插件,它可以帮助开发者轻松地实现不同屏幕尺寸的适配。通过使用 screenutil_module,你可以根据屏幕的宽度、高度、像素密度等参数来动态调整 UI 元素的大小,从而确保应用在不同设备上都能有良好的显示效果。

安装 screenutil_module

首先,你需要在 pubspec.yaml 文件中添加 screenutil_module 依赖:

dependencies:
  flutter:
    sdk: flutter
  screenutil_module: ^latest_version

然后运行 flutter pub get 来安装依赖。

基本用法

  1. 初始化 ScreenUtil

    在你的应用的入口文件(通常是 main.dart)中,初始化 ScreenUtil。你可以在 main 函数中调用 ScreenUtil.init() 来设置设计稿的尺寸。

    import 'package:flutter/material.dart';
    import 'package:screenutil_module/screenutil_module.dart';
    
    void main() {
      runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Flutter Demo',
          theme: ThemeData(
            primarySwatch: Colors.blue,
          ),
          home: MyHomePage(),
        );
      }
    }
    
    class MyHomePage extends StatefulWidget {
      @override
      _MyHomePageState createState() => _MyHomePageState();
    }
    
    class _MyHomePageState extends State<MyHomePage> {
      @override
      void initState() {
        super.initState();
        ScreenUtil.init(
          designSize: Size(375, 812), // 设计稿的尺寸
          allowFontScaling: false, // 是否允许字体根据系统设置缩放
        );
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text('ScreenUtil Demo'),
          ),
          body: Center(
            child: Text(
              'Hello, World!',
              style: TextStyle(fontSize: ScreenUtil().setSp(16)), // 设置字体大小
            ),
          ),
        );
      }
    }
  2. 使用 ScreenUtil 进行适配

    ScreenUtil 初始化之后,你可以使用 ScreenUtil() 来获取屏幕的宽度、高度、像素密度等信息,并根据这些信息来调整 UI 元素的大小。

    • 设置宽度和高度

      Container(
        width: ScreenUtil().setWidth(100), // 设置宽度为 100
        height: ScreenUtil().setHeight(200), // 设置高度为 200
        color: Colors.red,
      );
    • 设置字体大小

      Text(
        'Hello, World!',
        style: TextStyle(fontSize: ScreenUtil().setSp(16)), // 设置字体大小为 16
      );
    • 获取屏幕宽度和高度

      double screenWidth = ScreenUtil().screenWidth;
      double screenHeight = ScreenUtil().screenHeight;
    • 获取像素密度

      double pixelRatio = ScreenUtil().pixelRatio;
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!