Flutter如何用解决不同平台,不同设备尺寸的样式兼容问题?使用第三方库--ScreenUtil

一. 准备工作

        1. 首先需要去pub官网查看这个第三方库的信息,访问地址:https://pub.dev

        2. 在搜索框中输入 flutter_screenUtil

        3.进入详情页后,最关心的是关于该依赖的版本问题,因为版本会导致功能不一样

        4. 进入版本页

         注意:如果你的flutter项目版本低于2.12.0 ,那么你需要在版本页往下寻找不带有 Null Safety的版本去使用。

         5. 找到你所需的版本号,我们的准备工作就到此结束,接下来进入编辑器中开始实际引入操作。

二. 项目中引入

        1. 找到项目中的 pubspec.yaml 文件,在依赖中添加你需要的screenUtil依赖,以及所需的版本号。(因为作者本人的flutter项目版本是1.22.6,所以在此我引入的是4.0.4,不支持空安全的版本,大家根据自己项目的flutter版本引入版本号)

        2. 添加完成后,ctrl+s 保存文件

        (1)点击Andriod Studio编辑器中的右上角:Pub get即可,此时,项目会根据yaml文件中的dependencies去下载对应的资源(推荐使用这个Pub get按钮,编辑器的终端输入命令没有这个稳定)

 

        (2)点击Pub get后,Android Studio会在message中,告知下载是否成功。

                code为0,代表成功;如果code不为0,那么会出现对应的错误。

 三. 代码中使用

        1. 在成功引入后,接下来就是对代码进行修改。

        (1) 这是不加入ScreenUtil时,runApp内容

import 'package:flutter/material.dart';

void main() {
  runApp(MaterialApp(
    debugShowCheckedModeBanner: false,
    title: "flutter Demo",
    theme: ThemeData(primarySwatch: Colors.blue),
    home: Scaffold(
      body: Container(
            child: Text("hello screen")
        ) 
    ),
  ));
}

         (2)重点来了:在常规runApp的结构中,我们是直接嵌入了 MaterialApp组件。如果使用ScreenUtil,那么就需要对runApp组件进行改造,改造分为4步:

        第一步:将MaterialApp组件内容剪切出来;

import 'package:flutter/material.dart';

// 不要忘记引入该资源!!!
import 'package:flutter_screenutil/flutter_screenutil.dart';

void main() {
  runApp();
}

        第二步:在runApp()中返回ScreenUtilInit();

import 'package:flutter/material.dart';

// 不要忘记引入该资源
import 'package:flutter_screenutil/flutter_screenutil.dart';

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

        第三步:在剪切板的MaterialApp组件内容放在ScreenUtilInit组件的builder中保存即可;

import 'package:flutter/material.dart';

// 不要忘记引入该资源
import 'package:flutter_screenutil/flutter_screenutil.dart';

void main() {
  runApp(ScreenUtilInit(
     // 第一个参数,必传项
    designSize: Size(375, 812),  // 代表UI图设计尺寸,具体值根据UI提供的设置
    // 第二个参数,必传项
    builder: () =>
        MaterialApp(
          debugShowCheckedModeBanner: false,
          title: "flutter Demo",
          theme: ThemeData(primarySwatch: Colors.blue),
          home: Scaffold(
              body: Container(
                  child: Text("hello screen")
              )
          ),
        ),
      )
  );
}

        第四步:在项目中设置了具体数值的地方,比如width,height,top,left,padding,borderRadius,fontSize等进行相应的修改。

// 使用screenUtil前的代码
width: 200,
height: 200,
padding: EdgeInsets.all(10.0),
fontSize: 14,


// 使用screenUtil后的代码
width: ScreenUtil().setWidth(200),
height: ScreenUtil().setHeight(200),
padding: EdgeInsets.all(ScreenUtil().SetWidth(10.0)),
fontSize: ScreenUtil().setSp(14)

注意:如果项目的Dart版本高于2.6.0,(windows键+R键:cmd窗口中输入dart --version即可查看版本号)那么就不采用ScreenUtil.setWidth() 这样的写法,直接使用.w,.h,.sp这样的写法,参照下图

width: 200,
fontSize: 14,

// 修改为:
width: 200.w,
fontSize: 14.sp,

最后:你可以到手机,平板上进行调试了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Flutter 中引入第三方库是通过在 `pubspec.yaml` 文件中声明依赖来实现的。为了将 Flutter 应用程序构建为 Window 和 Mac 桌面应用程序,您需要使用 Flutter Desktop 插件。使用 Flutter Desktop 插件,您可以在 Flutter使用许多现有的桌面库,例如 GTK、Qt、Electron 等。 以下是在 Flutter 中引入第三方库的一般步骤: 1. 打开 `pubspec.yaml` 文件。 2. 在 `dependencies` 部分中添加库的名称和版本号。例如: ```yaml dependencies: http: ^0.13.3 ``` 3. 运行 `flutter pub get` 命令从网络下载库并将其添加到您的项目中。 4. 使用 `import` 语句将库导入到您的代码中。例如: ```dart import 'package:http/http.dart' as http; void main() { // 使用 http 库的代码 } ``` 要将 Flutter 应用程序构建为 Window 和 Mac 桌面应用程序,请按照以下步骤操作: 1. 在 Flutter 安装目录中运行 `flutter config --enable-windows-desktop` 命令以启用 Window 桌面支持。 2. 在 Flutter 安装目录中运行 `flutter config --enable-macos-desktop` 命令以启用 Mac 桌面支持。 3. 在您的 Flutter 项目中,运行 `flutter create .` 命令以创建一个桌面项目。 4. 在您的 Flutter 项目中,按照 Flutter Desktop 插件的文档说明添加依赖项和插件。 5. 使用 Flutter Desktop 插件提供的 API 来访问桌面特定功能,例如文件系统、网络、窗口管理等。 6. 运行 `flutter run -d windows` 命令以运行 Window 应用程序,或运行 `flutter run -d macos` 命令以运行 Mac 应用程序。 注意,构建 Flutter 桌面应用程序需要一些常规的桌面软件开发知识,例如 C++、Qt、Cocoa 等。如果您不熟悉这些知识,则可能需要更多的学习和实践才能成功构建桌面应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值