Flutter
flutter
jq@520
编程其实很简单,就是头顶有点凉
展开
-
flutte项目 编译打包时 自动更新版本号 告别手动修改版本号
在android/app/gradle.build 文件中 加入如下代码,可根据自己需求更改 ,这里是第三段数字 每次打包+1 ,此段代码 在flutter工程中打包 和 android工程中打包 通用例如:0.0.1 下次打包就是 0.0.2 在下次就是0.0.3 以此类推 // 截取版本号最后一段数字 def tem1 = Integer.parseInt(flutterVersionName.substring(flutterVersionName.lastIndexOf(".")原创 2021-08-28 16:13:46 · 883 阅读 · 0 评论 -
Flutter 隐藏键盘 输入框焦点保持 文本不丢失
onTap(){ SystemChannels.textInput.invokeMethod('TextInput.hide');}原创 2021-08-05 14:45:47 · 1028 阅读 · 0 评论 -
flutter 使用Overlay 自定义数字键盘
我这边没有把 输入框 和 键盘封装在一起,只封装了键盘 这几本能满足日常用途了 日常使用到独立的数字键盘的场景不多OverlayEntry overlayEntry;TextEditingController controller = TextEditingController();TextField( controller: controller, onTap: (){ // 使用键盘 numberKeypan( initialization...原创 2021-07-19 13:50:55 · 1858 阅读 · 3 评论 -
flutter 上拉加载 下拉刷新 和 ListView 冲突的解决方法
如图 需要在上拉下拉插件的listview中 禁用滑动、并且自适应高度,否则会和 easyrefesh无法触发,如图:1和2原创 2021-07-15 17:45:41 · 602 阅读 · 1 评论 -
Flutter 文本溢出的解决方案
由于Text组件本身没有宽度的,需要设置宽度才能使用 省略号 或者 截取掉后面的,但是有些场景 不知道宽度是多少 不设置宽度的情况下,可以使用如下方式 解决。例如 我这个案例 ,// 在外层 使用 Expanded包裹,里面的文本组件 则能使用 省略号等 ,像这种 行、列 里面的文本组件 children 这一层 就要约束,children下的子组件写Expanded 没任何效果,除非指定宽度! Row( ..原创 2021-04-28 11:15:09 · 2033 阅读 · 0 评论 -
Flutter 与 Android 原生混合开发 - 踩坑1 原生Activity的问题
在Flutter 与 安卓原生 进行混合开发的时候 使用AndroidStudio创建的Activity会遇到一些问题 需要手动去调整,负责会出现空指针异常 无法获取Activity 的闪退问题如:1. AndroidStudio创建的Activity 默认是继承了AndroidX下的 AppCompatActivity类(非AndroidX项目 继承这个类 会和Flutter的生成发生冲突 造成闪退),需要将默认生成的继承 调整成 android.app下的 Activity等,如果.原创 2021-03-25 16:38:01 · 623 阅读 · 0 评论 -
Flutter dart 国内镜像源大全 解决拉取依赖失败
由于官方服务器在国外,加上墙的问题 ,访问很慢,甚至无法访问,可通过更换成国内的镜像站来 拉取依赖,点击此目录 锚定位到内容:Flutter社区的镜像站上海交通大学 Linux 用户组的镜像站清华大学 TUNA 协会的镜像站CNNIC的镜像站腾讯开源镜像站Windows 用户 ,在系统环境变量中添加,如图:Mac 用户添加国内镜像设置完后 控制台执行:flutter doctor设置完后 项目根目录下控制台执行:flutter package get即可...原创 2021-02-02 17:07:46 · 3391 阅读 · 2 评论 -
Flutter 文件选择选择器 文件选择、选择word、pdf、excel等文件 fget_file
flutter_file_selector 文件选择插件,支持多选 ,演示示例在example目录我代码我传到码云上了,点我跳转下面是效果图: 第三张是ios端本插件使用到的依赖插件依赖pub仓库地址ermission_handler 权限申请pubfile_picker 调用选择器(IOS端使用的是这个)pub使用 flutter_file_selector: # 在pubspec.yaml 中引入依赖 flutterfileselecto原创 2020-06-19 18:44:14 · 7002 阅读 · 4 评论 -
flutter 1.20以后 将 DiagnosticableMixin移除了,更新为Diagnosticable
一些第三方的 依赖插件 有继承到DiagnosticableMixin这个类,开发者没有进行更新 如果flutter sdk是1.20以上的话 用了这个依赖包是无法打包编译的,需要进源码将DiagnosticableMixin 改为Diagnosticable有继承DiagnosticableMixin类的插件 例如 :flutter_cupertino_date_picker 这个也是 需改为Diagnosticable修改前修改后...原创 2021-01-19 16:14:21 · 1301 阅读 · 0 评论 -
flutter 将widget组件 转换成图片
flutter 将widget组件 转换成图片为了方便使用,我已将封装成插件 直接加依赖、导包 即可使用传送门使用方法 import 'package:widget_to_image/WidgetToImage.dart'; GlobalKey _globalKey1 = new GlobalKey(); WidgetToImage( globalKeys: _globalKey1, imagePath: "images/shouji_..原创 2021-01-12 16:55:38 · 2583 阅读 · 2 评论 -
flutter 例如打卡 或接单范围 、根据 经纬度 计算出两点之间的 距离
/// 根据两点经纬度 使用math 算出之间距离 /// 导入import 'dart:math'; _getDistance(double lat1, double lng1, double lat2, double lng2) { /// 单位:米 double def = 6378137.0; double radLat1 = _rad(lat1); double radLat2 = _rad(lat2); double a = radLat1 - ..原创 2020-07-21 16:14:31 · 2875 阅读 · 0 评论 -
Flutter 、Android 的 gradle配置,使用国内的镜像 让gradle构建下载加速
gradle配置,使用国内的镜像 让gradle构建下载加速 让构造飞起来在 GRALDE_HOME/init目录下 创建 init.gradle文件,复制如下:allprojects{ repositories { def ALIYUN_REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public' def ALIYUN_JCENTER_URL = 'http://maven.aliyun.com/nexus/co原创 2020-06-10 16:12:41 · 2392 阅读 · 1 评论 -
Flutter 在生命周期里 使用观察者 监听键盘展开、关闭 或者 其他操作
Flutter 在生命周期里 使用观察者 监听键盘展开、关闭 或者 其他操作我这里的代码是 收起键盘时 关掉输入框的焦点首先 with WidgetsBindingObserve1.在初始化时 添加观察者 WidgetsBinding.instance.addObserver(this); @override void initState() { // implement initState super.initState(); WidgetsBindi原创 2020-06-05 16:37:06 · 1021 阅读 · 0 评论 -
flutter 视频播放器 FijkPlayer视频播放器的使用
FijkPlayer 第三方的一个视频播放器,这是一个大佬基于比利比利播放器封装的,有常用的API 可自定义样式pub传送门默认的样式 展示:自定义的样式 展示: **使用:**fijkplayer: ^0.8.4/// 声明一个FijkPlayerfinal FijkPlayer player = FijkPlayer(); @override void initState() { /// 指定视频地址 player.setDataSource("http:/原创 2020-06-02 00:42:02 · 8591 阅读 · 19 评论 -
flutter APP下载或 APP更新的几种方法
博主试了3种方案 如下:方法1 先下载安装包,打开文件进行安装使用dio工具库的下载,也可以采用下载插件flutter_downloader,这个插件支持Android、IOS下载 我这里使用的是dio下载 ,使用install_plugin 安装apk ,ios则跳转到 app stor/// 下载apkFuture<File> _downloadApk(String datasource) async { /// 创建文件 Directory stora...原创 2020-06-23 09:54:30 · 3133 阅读 · 1 评论 -
Flutter apk打包 自动生成命名
将以下代码 放入build.gradle 文件里// 获取日期时间static def getDateTime() { def date = new Date() // 不能用冒号 def formattedDate = date.format('yyyy_MM_dd_HH_mm_ss') return formattedDate}将以下代码 放入build.gradle 文件的 android {}里 // 自定义APK安装包名 an.原创 2020-05-20 18:00:29 · 1575 阅读 · 0 评论 -
Flutter 使用RegExp 正则表达式 更方便的判断资源类型 返回相应的组件 如网络资源 本地资源
在开发中 很多时候会遇到使用本地资源 和 网络资源的情况,使用RegExp对象 做正则表达式判断 可以减少很多重复的代码,我这里是项目中 的一段 我这里 判断是图片资源类型: /// 缩略图 item /// 使用正则表达式 判断资源类型 /// [network],[file],[asset] 三种 createImageVideoItem(dataSource) { /// 使用正则判断资源类型 final netRegx = new RegExp(r'^(ht.原创 2020-05-19 14:26:40 · 1933 阅读 · 0 评论 -
Flutter 1.17 升级之后的踩坑 和 报错的解决办法
Flutter 前几天发布了1.17.1正式版 ,但这个版本还有些坑 ,依赖的dart是 2.8 ;1.2.9版flutter是2.7.2有些语法在1.17环境下 无法运行 和 打包 ,http 和 dio 会报Error: The method 'DioHttpHeaders.add' has fewer named arguments than thoseContext: This is the overridden method ('add'). void add(String ...原创 2020-05-16 02:30:30 · 5273 阅读 · 0 评论 -
Flutter项目 日常开发使用到的第三方依赖
# 随机字符串 random_string: ^1.1.0 # 添加依赖的包 flutter_screenutil: ^1.1.0 # 加载中模态框 modal_progress_hud: ^0.1.3 # 网络请求 http: ^0.12.0+2 #状态管理# provider: ^3.1.0 # 本地存储 shared_preferences: ^0.5.3+1 # 图片压缩 flutter_image_compress: ^0.6.0 # ...原创 2020-05-09 15:23:51 · 849 阅读 · 0 评论 -
Flutter 图像选择器,多图片选择器 的使用
引入第三方依赖,版本号自行 Pub仓库 查阅photo: ^0.4.8 /// 插件返回的资源 List<AssetEntity> assets = []; // 拿到的file List<File> fileImage = []; /// 调用插件 void pickAssets() async { assets = aw...原创 2020-05-08 17:22:31 · 3246 阅读 · 3 评论 -
Android Studio Flutter项目 无发右键打开Android工程的解决方法
有时会因为原生的问题 需要打开Android工程去解决 但会发现 右键无法直接打开Android工程了 ,只需在Android工程下 添加如下文件即可解决。创建一个 xxxx_android.iml 文件,复制以下内容 粘贴保存 (xxxx为项目名称)<?xml version="1.0" encoding="UTF-8"?><module type="JAVA_MO...原创 2020-05-06 15:06:31 · 1298 阅读 · 2 评论 -
Flutter TextField 多行输入时 、在ios端无法收起键盘的解决方法
TextField 多行输入时 、在ios端 会出现无法收起键盘的问题,可以使用触摸监听并收起键盘。使用Listener监听当前页面Listener( onPointerDown: (onPointerDown){ print('手指按下回调'); }, onPointerMove: (onPointerMove){ // 触摸收起键盘 ...原创 2020-04-28 21:58:54 · 2444 阅读 · 0 评论 -
Flutter Text组件 文字的对齐、数字和字母对齐中文
对齐的效果Text的高度 是根据 height 乘于 fontSize 进行计算的、这里指定heiht即可、不指定的会出现 无法对齐的情况,如下:这种就是无法对齐的情况原创 2020-04-24 16:53:34 · 8207 阅读 · 5 评论 -
Flutter初始化时 弹出弹出框
使用 Future.delayed或者WidgetsBinding.instance.addPostFrameCallback @override void initState() { // TODO: implement initState super.initState(); //初始化时 弹出弹出框 必须加上Future.delayed Future.delayed( Duration.zero, (){...原创 2020-03-12 23:03:44 · 3284 阅读 · 4 评论 -
Flutter 打包后运行闪退 release包闪退的解决办法
Flutter从1.12开始 ,默认开启了混淆的 会遇到app闪退的情况,把它关闭即可,如果要用混淆的话,自行查阅 flutter 混淆的配置,开启混淆只是减少无用资源和代码压缩使安装包更小开启状态需要配置规则文件才可避免闪退 不是很熟悉的话关闭就行了。关闭混淆//关闭混淆minifyEnabled false //删除无用代码shrinkResources false //删除...原创 2020-01-17 14:55:48 · 8633 阅读 · 7 评论 -
flutter 得到文件的内存、B KB MB GB
//size.substring(0,size.indexOf(".")+3) 小数点位数 getPrintSize( limit){ String size = ""; //内存转换 if(limit < 0.1 * 1024){ //小于0.1KB,则转化成B size = limit.to...原创 2020-01-17 08:36:19 · 4042 阅读 · 0 评论 -
android studio 设置Flutter快捷键
android studio 设置快捷键 ,可以将一些常用的代码块、注释 写成一个模板 需要用时 直接 快捷键生成原创 2020-01-10 11:57:07 · 1044 阅读 · 0 评论 -
flutter 视频播放器 第三方插件Flutter chewie 的使用
flutter chewie第三方插件的使用chewie: ^0.9.8+1传送门video_player: ^0.10.1+6传送门VideoPlayerController videoPlayerController;ChewieController chewieController; @override void initState() { // TODO: im...原创 2020-01-10 11:42:11 · 9198 阅读 · 4 评论 -
Flutter中 dateFormat的使用方式 ,flutter的日期时间格式化
dateFormat样式 描述 例 yyyy year 2019, 2020 yy year, 2 digits 19, 20 MMMM month January(en_us), 01(zh_cn) MMM month, abbreviated Jan(en_us), 01(zh_cn) MM month...原创 2019-12-27 09:53:42 · 4402 阅读 · 0 评论 -
Flutter 多行文本 折叠、超过行数 全文、收起 类似朋友圈
// 全文、收起 的状态 bool mIsExpansion = false; // 最大显示行数 int mMaxLine = 5; ///[_text ] 传入的字符串 Widget _RichText(String _text) { if (IsExpansion(_text)) { //是否截断 if (mIsExpansio...原创 2019-12-25 16:54:21 · 7328 阅读 · 1 评论 -
Flutter仿qq滑动,实现的可滑动列表项 类似于qq消息列表
Flutter实现的可滑动列表项,具有可被取消的定向滑动动作可参考作者的githubhttps://github.com/letsar/flutter_slidable添加依赖:flutter_slidable原创 2019-12-24 16:31:33 · 730 阅读 · 0 评论 -
Flutter GridView网格布局 几种不同的方式 神仙操作
一般 方法2 和 方法 3使用的比较多写法1GridView.count( //水平子Widget之间间距 crossAxisSpacing: 10.0, //垂直子Widget之间间距 mainAxisSpacing: 10.0, //GridView内边距 padding: EdgeInsets.all(0.0...原创 2019-12-13 17:31:10 · 1372 阅读 · 0 评论 -
Flutter 状态管理 | StreamBuild 、局部刷新的效果、Flutter局部刷新
ui页面是经常要改内容的 但是如果用setState方法去刷新 每次都会重新Build构造一遍 会造成app卡顿 资源占用高,所以可以使用StreamBuild 去订阅 刷新需要刷新的那个UI部件 就不用重构一遍整个页面,除了StreamBuild以外 还有很多种方式 如谷歌的亲儿子Provider ,以及第三方的Bloc ,个人觉得 bloc 使用起来比较复杂,本人喜欢StreamBuild这...原创 2019-11-22 09:26:40 · 1632 阅读 · 0 评论 -
Flutter TextField输入内容后 保持光标在最后
TextField( controller: TextEditingController.fromValue(TextEditingValue( // 输入的文本 text: text, // 保持光标在最后 ...原创 2019-11-21 16:15:08 · 2820 阅读 · 0 评论 -
Flutetr 实现文件下载 笔记及踩坑
Flutetr 使用flutter_downloader插件 实现文件下载 笔记及踩坑所用到的依赖包:可前往 PUB开源仓库拉取https://pub.flutter-io.cn/# 权限permission_handler: ^3.3.0# 获取路径path_provider: ^1.4.0# 文件下载flutter_downloader: ^1.3.1重要!!新建一...原创 2019-10-28 18:04:07 · 1891 阅读 · 0 评论 -
Flutter 实体 json转实体 要注意的地方
标题原创 2019-10-08 13:30:39 · 114 阅读 · 0 评论