文章 64
评论 33
浏览 142909
flutter单例模式记录一下

flutter单例模式记录一下

记录一下flutter单例模式的编写方案。 # 懒汉式 class Singleton { static Singleton _instance; Singleton._internal() { _instance = this; } factory Singleton() => _instance ?? Singleton._internal(); } # 饿汉式 class Singleton { Singleton._internal(); factory Singleton() => _instance; static late final Singleton _instance = Singleton._internal(); }

flutter 依赖记录说明

flutter 依赖记录说明

本文记录一些好的依赖说明和截图等,用作以后不时之需。 1、shared_preferences shared_preferences 是存储依赖,主要用来临时存储用的,对应的还有Get_storage 这个插件也可以试试 2、sticky_and_expandable_list sticky_and_expandable_list, 干啥用的直接看图吧! 3、Dio Dio网络请求封装工具类,跟HttpClient差不多的一个东西,只要涉及网络,那百分百跑不掉的。 4、flutter_easyrefresh flutter_easyrefresh下拉刷新上拉加载更多。这个插件还不错,可以试试看。 5、Getx Getx屌炸的一个库,用处有很多: 状态管理:灵活且实用性极强,个人觉得什么provider、fish_redux、bloc在他面前就是一坨屎。 理由导航:超简单,个人觉得fluro在他面前就是一坨屎。 snackbar提示:超简单,个人觉得oktoast、toast在他面前就是一坨屎。 国际化、主题修改:超级简单,妈妈再也不用担心i18n找不着家了。 6、flutter....

flutter 使用Dio 4.x封装工具类,支持空安全.

flutter 使用Dio 4.x封装工具类,支持空安全.

记录一下, Dio 高版本4.x支持空安全封装的工具包,本文不全! 一、引入依赖 Dio: dio: ^4.0.0 此时使用最新版本dio,时间:2021-7-01 二、创建Dio的单例实例: import 'package:dio/dio.dart'; class DioHttpClient { static const int _DEFAULT_CONNECT_TIMEOUT = 60 * 1000; static const int _DEFAULT_SEND_TIMEOUT = 60 * 1000; static const int _DEFAULT_RECEIVE_TIMEOUT = 60 * 1000; final Map<String, Dio> _mClientMap = <String, Dio>{}; DioHttpClient._internal(); static final DioHttpClient _instance = DioHttpClient._internal(); factory DioHttpClient.getIn....

新版flutter按钮记录一下笔记

新版flutter按钮记录一下笔记

本文记录了一下 flutter 升级到2.x版本后新出来的按钮相关, 新版按钮:TextButton、OutlinedButton、ElevatedButton 一、移除掉内置的 padding 效果 正常情况如果在新版按钮外面套一层Container, 你会发现 这个按钮的实际大小和真按钮不一样大,如图所示 此时如果需要将外层的空余去掉,需要如此: ElevatedButton( style: ButtonStyle( tapTargetSize: MaterialTapTargetSize.shrinkWrap, minimumSize: MaterialStateProperty.all(Size(0, 0)), padding: MaterialStateProperty.all(EdgeInsets.all(5)), ), child: Text('测试发送'), onPressed: () { print("测试发送!"); }, ) 可以看到效果如下: 二、按钮的一些设置 比如按钮的形状、颜色、字体色、背景色、渐变色等等乱遭的 先罗列一下属性,网上抄的,将就看....

flutter使用iconfont.cn上的图标

flutter使用iconfont.cn上的图标

自定义Icon图标教程,记录一下。 1、iconfont.cn网站处理一下: 下载文件: 两个文件需要试用一下, 一是ttf文件,在第2步中直接引入即可。另外一个css文件转化成dart文件,用一个网站转就可以了 https://xwrite.gitee.io/blog/ 2、Flutter项目引入一下。 首先pubspec.yaml也要引入一些依赖。 fonts: - family: IconFont fonts: - asset: assets/fonts/iconfont.ttf 引入ttf文件: 3、使用一下: 使用如下: BottomNavigationBarItem( icon: Icon(IconFont.icon_home), label: "主页", ), 4、还有一种转换方法,如链接所示

flutter桌面版开发设置窗口大小(最小尺寸、最大尺寸、固定尺寸),窗口标题。

flutter桌面版开发设置窗口大小(最小尺寸、最大尺寸、固定尺寸),窗口标题。

记录一下,关于flutter桌面版的固定尺寸 一、选择对的插件 如果只是单纯做窗口尺寸限制大小、文件上传等相关设置,那么最好的插件推荐就是这个flutter-desktop-embedding,该库没有发布到pub上面,如果要引用,如下: window_size: git: url: git://github.com/google/flutter-desktop-embedding.git path: plugins/window_size ref: f2d8aa3820fb87316516670bf4d51a74de8ac0dd 需要注意的是:如果是窗口尺寸,那么path如上填写没问题,但是如果是要设置选择文件,那么path就要改另外的一个路径,还有一点就是ref最好改成最近的一次commit。 如果是要做到自定义窗口,那么就要用到另外一个插件bitsdojo_window,这个库可以实现完全自定义窗口那种情况,达到的效果如下图所示: 二、上代码教程 说再多也不如直接上代码来的实在,ok,先说flutter-desktop-embedding这个组件: import 'dart....

使用android手机进行无线调试

使用android手机进行无线调试

本文记一下关于android 11 进行无线联调的步骤,方便下次查看 1. 手机上的操作 进入开发者模式 允许USB调试 开启无线调试 2. 电脑上的操作 确保adb配置环境变量完成 开始匹配到手机 # 需要注意此处的ip和端口号,都是弹窗里面的 adb pair 172.16.15.211:39939 Enter pairing code: 664111 Successfully paired to 172.16.15.211:39939 [guid=adb-05KAY1XPBC-hyXNZI] 此时只是匹配上了,但是还没有连接起来,此时可以开始连接 # 注意此条命令的ip和端口号,ip和上面一致,端口号不是弹窗里面的,而是设备端口号(谈窗的) adb connect 172.16.15.211:42653 检查是否连接上了 adb devices -l

flutter编写的app打包抓包记录

flutter编写的app打包抓包记录

默认情况下,flutter因为采用了走自己代理的办法所以编写的包不能通过平常的配置去抓包,他的抓包方式分为两种,一种是代码级别的抓包,第二种是路由级别的抓包,此文记载一下。

flutter使用DOM解析

flutter使用DOM解析

本文主要是记录在写 flutter 项目的时候如果碰到比较好的、比较适用的网页,而该网页又没有提供专门的 RESTful 风格的接口的时候,此时使用本教程解析 html 可以很好地获取自己想要的数据,跟爬虫的解析有异曲同工之妙!话不多说,开整!

flutter中使用RSA进行公钥加密

flutter中使用RSA进行公钥加密

新公司使用flutter进行密码加密, 特写文章记录一下方便以后使用 准备工作 首先要知道, RSA为非对称加密, 此处记录的是前端使用公钥加密, 后端使用私钥解密, 此处的公钥是网络静态文件. 举个栗子: - 公钥地址: https://keppel.fun/publicKey.pem - 公钥内容: -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDAJz2dB47fquw+Y6WVLcpJojMw z9Qy2rs0FVdSE4fffDIoryxvLvmUe4ZKQlLHRZgcFESVvo4TaLcAcuni60gNCEem y1w+P93GKcjEFyt705PibOSQFYcN07vC77brJ6SbP9hd8g8RslSK7CZ9VQ9uQHge q8MN5q84Q4rwOZZSCQIDAQAB -----END PUBLIC KEY----- 以上是公钥的内容, 不是单纯的秘钥, 而是包含了一个头和一个尾,中间才是正文, 但是解析的时候会自动跳过去头尾! show me your cod....

哈哈哈哈哈哈哈嗝~