RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
flutterpub,flutter瀑布流卡顿

Flutter实践--屏幕适配

做移动端开发的小伙伴都知道,针对不同型号和尺寸的手机要进行页面适配,且Android和iOS适配方案各不相同,那flutter端如何进行适配呢?以下为近期flutter开发过程中关于适配的一些学习和记录~~~~

创新互联建站主要从事网站建设、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务华州,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792

说到flutter屏幕适配,就不得不提到插件 flutter_screenutil ,提到flutter_screenutil就不得不说以下几点????

默认宽1080px

默认高1920px

allowFontScaling为false,即不跟随系统字体大小设置变化

初始化单位为px

需要把context传进去,因为内部是通过 MediaQuery 来获取屏幕尺寸等相关信息的

无需再传context,因为内部是通过单例 window 来获取屏幕尺寸等相关信息的

作为iOS开发,之前都是以pt为参照进行比例适配的,且架构组已经定义了一套适配相关常量,传px进去不太方便,所以需要对flutter_screenutil进行扩展

公司设计图是以iPhone X的尺寸提供的即物理设备尺寸为375x812,像素比例为750x1624,像素密度比为2

初始化仍用px来初始化

dart sdk 2.7正式支持 extension-method ,即为已有类扩展方法,从 flutter_screenutil 这种 540.w 写法点进去,我们可以看到

flutter_screenutil为num类扩展了一系列简写方法,那我们当然可以按照它这种方式进行扩展

网上提供的解决方案:

第一步:修改 pubspec.yaml

第二步:执行 flutter pub get

第三步:重启 AndroidStudio

解决方案:去掉const即可

UI设计中px、pt、ppi、dpi、dp、sp之间的关系

Dart/Flutter - 扩展方法(ExtensionMethod)

Flutter 之 文件操作(二十九)

Dart的 IO 库包含了文件读写的相关类,它属于 Dart 语法标准的一部分,所以通过 Dart IO 库,无论是 Dart VM 下的脚本还是 Flutter,都是通过 Dart IO 库来操作文件的,不过和 Dart VM 相比,Flutter 有一个重要差异是文件系统路径不同,这是因为Dart VM 是运行在 PC 或服务器操作系统下,而 Flutter 是运行在移动操作系统中,他们的文件系统会有一些差异。

Android 和 iOS 的应用存储目录不同, PathProvider 插件提供了一种平台透明的方式来访问设备文件系统上的常用位置。该类当前支持访问两个文件系统位置:

File代表一个整体的文件,他有三个构造函数,分别是:

文件读取本身有两种形式,一种是文本,一种是二进制。

2.2.1 读取文本内容

如果是文本文件,File提供了readAsString、readAsLines、readAsStringSync、readAsLinesSync方法,读取文本内容

readAsString 一次性读取所有文本

readAsLines 一行行的读取文本

结果返回的是一个List,list中表示文件每行的内容

readAsStringSync、readAsLinesSync同步读取文本

2.2.2 读取二进制内容

如果文件是二进制,那么可以使用readAsBytes或者同步的方法readAsBytesSync:

dart中表示二进制有一个专门的类型叫做Uint8List,他实际上表示的是一个int的List。

上面提到的读取方式,都是一次性读取整个文件,缺点就是如果文件太大的话,可能造成内存空间的压力。

所以File为我们提供了另外一种读取文件的方法,流的形式来读取文件.

示例

dart提供了open和openSync两个方法来进行随机文件读写:

写入和文件读取一样,可以一次性写入或者获得一个写入句柄,然后再写入。

一次性写入的方法有四种,分别对应字符串和二进制

句柄形式可以调用openWrite方法,返回一个IOSink对象,然后通过这个对象进行写入:

默认情况下写入是会覆盖整个文件的,但是可以通过下面的方式来更改写入模式:

虽然dart中所有的异常都是运行时异常,但是和java一样,要想手动处理文件读写中的异常,则可以使用try,catch:

我们还是以计数器为例,实现在应用退出重启后可以恢复点击次数。 这里,我们使用文件来保存数据:

1.引入PathProvider插件;在pubspec.yaml文件中添加如下声明:

执行 flutter pub get

2.实现如下

参考:

Flutter: pub get

Flutter添加依赖库

执行pub get, 提示错误信息: command not found: pub

解决方案:flutter pub get

flutter插件发布及问题解决

1,执行 flutter pub publish--dry-run 检查是否具备发布条件

遇到的问题1:

It‘s strongly recommended to include a “homepage“ or “repository“ field

解决方案:在 pubspec. yaml  中配置 主页 homepage 地址 :

homepage:

可参考:

2,执行 flutter pub publish--server= 发布

如果执行flutter pub publish发布的话会遇到以下错误,国内还是用 flutter pub publish--server= 来发布

package repository requested authentication! You can provide credential using:pub token add

问题1:It looks like accounts.google.com is having some trouble. Pub will wait for a while before trying to connect again. OS Error: Operation timed out, errno = 60, address = accounts.google.com, port = 53481 pub finished with exit code 69

原因:

1、国内墙;

2、flutter环境配置添加了国内镜像

解决方式:

1、翻墙;

2、屏蔽环境变量里关于flutter的国内镜像;

屏蔽方式如下:

# export PUB_HOSTED_URL=

# export FLUTTER_STORAGE_BASE_URL=

3、设置终端代理命令(这个是我解决的方式),这个非常重要,不然就会报上面超时错误了

如果出现:Flutter pub finished with exit code 1

解决方式:flutter packages pub publish --server=

此问题原文链接:(毕竟要尊重版权)

问题2:LICENSE这个文件中不能有TODO,也不能为空,可找个flutter库看看别人是怎么写的

Flutter发布Package(Pub.dev或私有Pub仓库)

  因为我们使用Flutter跨平台技术开发App时,会有很多公用组件,因为Flutter中一切皆为Widget,widget也比较细粒度,所以我们需要进行封装,用于一个项目或者公司不同项目中去~

  那么今天写写如何发布package或者插件到Pub.dev上,扯扯谈O(∩_∩)O哈哈~

《Flutter的拨云见日》系列文章如下:

1、Flutter中指定字体(全局或者局部,自有字库或第三方)

2、Flutter发布Package(Pub.dev或私有Pub仓库)

首先,我们知道flutter有四种工程模式:Flutter Application、Flutter Module、Flutter Plugin和Flutter Package。

我们这里就主要讲Package 纯Dart插件的发布吧,都差不多。

创建工程后,就可以编写你的公共组件,或者公用字体库呀啥的, 都行。

在更改下你的pubspec.yaml文件,修改下你的versionCode,项目名称,项目描述,作者等

如果上传失败试试????的命令:

在执行该命令时,可能会中途调到网页,要求你登录google账号,登录授权,到时候登录账号并授权就可以了。

因为我们直接使用flutter packages pub publish是发布到Pub.dev上,并不是发布到私有仓库,该怎么办呢?

其实呢,也很简单!像versionCode,项目名,等都和发布Pub.dev是一样的。没啥区别。

有两种方式:

就是这么简单o( @ )o

相信大家引用Pub.dev上的第三方库都会了哈,到处都是这里不讲了

在使用flutter pub get就可以拉到私有仓库项目了

以上就差不多聊了聊package发布和获取的事儿了,都很明了,大家可以试试,挺简单的。

PS: 写文不易,觉得没有浪费你时间,请给个点赞~ ????


分享文章:flutterpub,flutter瀑布流卡顿
转载源于:http://lswzjz.com/article/dssghdo.html