Flutter
文章平均质量分 59
油焖茄子
慢慢积累 要为自己喜欢的东西 努力
展开
-
flutter升级textField WhitelistingTextInputFormatter
将WhitelistingTextInputFormatter(RegExp("[0-9]"))升级FilteringTextInputFormatter.allow(RegExp("[0-9]")),4.允许输入大小写字母,但是禁止abF!原创 2024-06-13 14:09:33 · 223 阅读 · 0 评论 -
Flutter 创建项目就报错 Gradle7.3.0网络下载问题
GoogleMavenRepo解决方法。转载 2024-05-15 09:35:37 · 349 阅读 · 0 评论 -
flutter常用的三方库
/https://pub.dev/packages/flutter_webview_plugin 不可拦截url 没人维护已遗弃。https://pub.dev/packages/syncfusion_flutter_charts 这个更全更细。https://pub.dev/packages/pin_code_fields 下划线、方框。https://pub.dev/packages/otp_text_field 只是下划线。1.flutter加载iOS的图片或者iOS加载flutter的图片。转载 2024-02-21 09:23:54 · 354 阅读 · 0 评论 -
flutter报错HTTP Host Availability (the doctor check crashed)的解决办法
https://maven.google.com/ 改为 https://dl.google.com/dl/android/maven2/3、进入到flutter\bin目录,删除cache目录下的flutter_tools.snapshot 文件。kgCloudHttpHost 改为https://storage.flutter-io.cn/kPubDevHttpHost 改为https://pub.flutter-io.cn/1、找到flutter sdk的文件目录,打开下面路径文件。转载 2024-02-21 09:22:34 · 406 阅读 · 0 评论 -
Flutter签名
配置android\app\build.gradle 在buildTypes上面添加。回车之后,输入两次要设置的密码,和一些相关的信息。输入查看签名详情 包括SHA1等信息。转载 2024-01-30 13:14:07 · 110 阅读 · 0 评论 -
mac 修改flutter sdk配置
问题:描述我mac电脑上有高低2个版本的flutter sdk,我需要低版本sdk的项目在setting里设置了sdk版本,可是命令行还是提示我版本过高。打开mac终端,输入open -e .bash_profile,然后修改下方圈起来的flutter版本ok。原创 2024-01-24 15:17:15 · 678 阅读 · 0 评论 -
flutter constraintLayout设置textField高度之后hintText不局中
添加下面这句话就ok了。原创 2024-01-20 14:00:51 · 414 阅读 · 0 评论 -
flutter mac下配置Flutter环境变量
每次打开终端都需要先输入source .bash_profile,才能使用flutter命令有点麻烦。如果你看到 .bash_profile does not exist.这样一来不用每次打开都输入source .bash_profile。第一部分是环境变量,路径应该是你本地flutter的路径。// 配置镜像,下载 flutter 依赖速度快。执行 touch .bash_profile。bash_profile需要配置的内容。创建 bash_profile文件。第二部分是镜像,下载插件时需要用到。转载 2024-01-17 16:12:34 · 470 阅读 · 0 评论 -
Flutter的pubspec.yaml中的依赖版本号之前的插入号(^)是什么?
它是较长形式的缩写。^表示,我希望自动使用Pub中的最新软件包,只要该更新不会破坏我的应用程序中的任何内容即可。,以指示允许的版本号范围。具体来说,从指定版本到(但不包括)下一个非破坏性版本的任何版本都是可以的。所以^3.1.5与'>=3.1.5 <4.0.0'相同。和^1.2.3与'>=1.2.3 <2.0.0'相同。脱字号(^)用于Dart中的。转载 2024-01-16 13:08:59 · 129 阅读 · 0 评论 -
Flutter 小技巧之优化你的代码性能
另外 Component Class 的实现方式,也能在一定层度解决代码层级嵌套的问题,有时候实现一些 Component Class 的模版也可以成为 Flutter 里提高效率的工具,这个后面我们会聊到。可以是最常说到的一个性能优化的例子, 一般情况下在页面的子控件里使用动画,特别是循环动画的话,我们都会建议使用前面介绍的 Component Class 方式,不然动画导致当前页面不停 rebuild 肯定会导致性能影响。,放心,本篇我们不讲深入的源码分析,就是分享最最最基础的布局代码优化。转载 2024-01-15 10:19:42 · 67 阅读 · 0 评论 -
Flutter渲染流程解析
官方对Widget的说明:自己的理解:官方对RenderObject的描述:Flutter引擎渲染的时候,其实渲染的是RenderObjectTree,但是widget和RenderObject并不是一一对应的,为什么呢?因为有些widget其实就是一个盒子,将其他widget装到一起的。就比如我们常用的 Text 继承于 StatelessWidget,我们知道,只要继承于StatelessWidget或者继承于StatefulWidget,就要看它的build方法,看过build方法之后我们发现它最后返转载 2024-01-15 10:14:50 · 306 阅读 · 0 评论 -
Flutter的生命周期
按home键或Power键, AppLifecycleState inactive---->AppLifecycleState pause。插入渲染树时调用,只调用一次,widget创建执行的第一个方法,这里可以做一些初始化工作,比如初始化State的变量。在热重载(hot reload)时会被调用,此回调在Release模式下永远不会被调用。当State对象从树中被移除时,会调用此回调,会在dispose之前调用。不可见并不能响应用户的输入,但是在后台继续活动中,同安卓的onStop。转载 2024-01-15 10:08:55 · 342 阅读 · 0 评论 -
Flutter知识点总结
包与插件:功能集合的模块alibaba/flutter_boost:路由install_plugin 2.0.0#app下载更新插件audio_recorder: any #录音、播放flutter_sound: ^1.1.5#录音dropdown_menu: ^1.1.0#下拉菜单simple_permissions:#权限获取easy_alert:#弹框amap_location: any #高德地图location: any #gogle位置获取。转载 2024-01-15 10:07:45 · 175 阅读 · 0 评论 -
flutter-isolate详解
Dart 是单线程,Dart 为我们提供了 isolate,isolate 跟线程差不多,它可以理解为 Dart 中的线程。isolate 与线程的区别就是线程与线程之间是共享内存的,而 isolate 和 isolate 之间是内存不共享的,所以叫 isolate (隔离)。因此也不存在锁竞争问题,两个Isolate完全是两条独立的执行线,且每个Isolate都有自己的事件循环,它们之间只能通过发送消息通信,所以它的资源开销低于线程。大多数计算机中,甚至在移动平台上,都在使用多核 CPU。转载 2024-01-15 10:06:07 · 900 阅读 · 0 评论 -
Flutter 四种运行模式
5、 命令flutter run --profile就是以这种模式运行的,通过sky/tools/gn --android --runtime-mode=profile或者sky/tools/gn --ios --runtime-mode=profile```来build。最终,为了发布应用程序,会使用Release模式进行构建和部署,以获得最佳的性能和效果。“Observatory” 是 Dart 和 Flutter 提供的一种强大的工具,用于在运行中的应用程序中监视、调试和分析应用程序的性能和行为。转载 2024-01-15 10:04:07 · 274 阅读 · 0 评论 -
flutter RxDart——Dart和Flutter中的响应式编程入门
这只是一片RxDart使用的入门教程的。本文并未深入探讨RxDart的实现原理和逻辑,因为这些原理基本和RxJava中的类似。感兴趣的可以去关注我的RxJava系列的文章。转载 2024-01-15 10:01:26 · 336 阅读 · 0 评论 -
Flutter 资源大全 - 组件、导航、模板、插件、框架和引擎
Flutter 是 Google 出品的 UI 工具包,旨在使用一套代码构建精美的移动端、网页和桌面端的跨平台应用。Flutter 资源大全中文版翻译整理自awesome-flutter,在此基础上会不定期补充一些中文 Flutter 相关的资源,内容涵盖:组件、导航、模板、插件、框架、引擎、开源应用、网页、工具集和书籍等。如果你需要进一步了解某个 Flutter 资源,请访问上面的 Github 项目地址,里面都有链接可以直接跳转。翻译整理这个系列的资源不易,如果对你有帮助,请转发分享给更多有需要的人。转载 2024-01-11 14:06:00 · 516 阅读 · 0 评论 -
flutter动画之lottie
Lottie 是 Airbnb 开源的一个支持 Web、Android、iOS 以及 ReactNative等平台的动画库,它可以结合 AE 和 Bodymovin 来快速实现跨平台动画。转载 2024-01-11 14:03:51 · 621 阅读 · 0 评论 -
Flutter Lottie动画与Shimmer实现的微光效果
Lottie是一个适用于Android和iOS的移动库,它解析使用Bodymovin导出为json的Adobe After Effects动画,并在移动设备上原生渲染它们!Shimmer库,用于在Flutter项目中添加微光效果的一个包,本项目使用的是3.0.0版本。Flutter使用的版本 3.13.8,使用fvm管理版本。本文章使用的 lottie 库是 2.7.0版本。加载动态地图示例,使用的是 lottie。加载中的占位使用的也是 Shimmer。加载文本特效使用的是 Shimmer。转载 2024-01-11 13:53:58 · 259 阅读 · 0 评论 -
Flutter computer 函数
compute(function,value) compute 函数接受2个参数,第一个就是新线程的核心执行方法,第二个是传递过新线程的参数,可以是任何类型的数据,几个也可以,但是要注意,function 函数的参数设计要和 value 匹配。compute 方法是 Flutter 提供给我们的(记住不是 Dart),compute 内部会创建一个 Isolate 并返回计算结果,体验上和一次性线程一样,性能多少有些浪费,但是也有使用范围。转载 2024-01-05 11:12:51 · 281 阅读 · 0 评论 -
Flutter异常捕获runZoned
Zone表示一个代码执行的环境范围,为了方便理解,读者可以将Zone类比为一个代码执行沙箱,不同沙箱的之间是隔离的,沙箱可以捕获、拦截或修改一些代码行为,如Zone中可以捕获日志输出、Timer创建、微任务调度的行为,同时Zone也可以捕获所有未处理的异常。Flutter 框架为我们在很多关键的方法进行了异常捕获。Dart中可以通过try/catch/finally来捕获代码块异常,这个和其它变成语言类似,,如果读者不清楚,可以查看Dart语言文档,不在赘述,下面我们看看Flutter中的异常捕获。转载 2023-12-29 17:15:59 · 268 阅读 · 0 评论 -
flutter绘制流程——rebuild
/定义old和new的首尾位置//根据old和new的长度判断,如果相同则newChildren直接使用oldChildren,如果不同,则创建一个长度为newWidgets.length的list,使用_NullElement.instance来填充。转载 2023-12-29 17:10:47 · 127 阅读 · 0 评论 -
Flutter Widget刷新时机以及优化
如果新的widget和旧的widget的Key相同,那么Flutter将会重用旧的widget,并仅更新它的属性。我们可以为每个列表项都指定一个唯一的Key,并确保它们的Type不变,这样当列表项的状态发生变化时,Flutter将只更新发生了变化的列表项,而不会更新其他列表项。由于它们的Type相同,Flutter将只更新它们的属性,而不会创建新的widget。如果新的widget和旧的widget的Type不同,那么Flutter将会创建一个新的widget,并将其插入到widget树中。转载 2023-12-29 17:07:05 · 135 阅读 · 0 评论 -
Flutter之GetX状态管理——Obx的使用及原理详解
通过对 Obx 和 Rx 的订阅和通知的源码分析理解,加深了对 Obx 状态管理的理解,在开发过程中更能灵活的对其使用。本文只讲解了 Obx 和 Rx 关于订阅和通知部分的源码,关于其更多的源码大家有兴趣可以再深入学习,通过对源码的学习能使我们更好的理解 GetX 的库,也能让我们学到更多的知识。转载 2023-12-29 16:36:40 · 1908 阅读 · 0 评论 -
flutter 之proto
然后将你要转译的proto文件放在桌面上,然后在控制台输入sh build_proto_dart.sh,然后会在test2里面出现你想要的proto文件。build_proto_dart.sh文件内容博主自己需求写的,大家也可以按自己需求更改.先在电脑上安装protobuf(在博主文章内容里面搜Mac安装protobuf),然后在桌面上放这几个文件,且build_proto_dart.sh文件内容如图所示。和嵌入式用proto协议来通信,以mac来演示。原创 2023-12-29 16:47:03 · 808 阅读 · 0 评论 -
Flutter 获取WiFi信息 [network_info_plus 库使用]
用于发现网络信息(例如 WiFi 详细信息)的 Flutter 插件。Flutter 的权限插件。此插件提供跨平台(iOS、Android)API 来请求和检查权限。转载 2023-12-27 09:57:50 · 1161 阅读 · 0 评论 -
flutter 异常 Redeclaration: FlutterToastPlugin
根据上面的路径找到文件,将2个版本都删掉,重新运行ok。原创 2023-12-27 09:54:51 · 465 阅读 · 0 评论 -
Flutter Map:打造交互体验流畅的地图
FlutterMap是一个基于Flutter的在线地图插件,提供了丰富的地图数据源和交互方式,开发者可以轻松集成到自己的应用程序中。FlutterMap优秀的UI性能和地图渲染能力,为用户带来极致的滑动、缩放体验。FlutterMap提供了对地图相关的一些丰富操作,使用FlutterMap可以帮助开发者轻松并高效地开发地图交互相关的应用。转载 2023-12-19 16:10:41 · 1391 阅读 · 0 评论 -
iOS Xcode 升级Xcode15报错: SDK does not contain ‘libarclite‘ at the path ‘/Applications/Xcode.app/Con...
3、将下载下来的文件粘贴到/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc下。3、将下载下来的文件粘贴到/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc下。截屏2023-09-26 09.46.15.png。二、重新运行后将修复这个问题。转载 2023-12-12 13:18:10 · 788 阅读 · 0 评论 -
flutter 设置支持桌面应用
7. 构建完成后,可以在 build/ 文件夹中找到生成的应用程序。您可以在终端中运行它,或将其复制到其他计算机中。5. 编辑 main.dart 文件,添加支持各种平台的 main 方法,并按照需要执行操作。该命令将使 Flutter 支持 Windows、MacOS 和 Linux 操作系统。1. 安装 Flutter SDK,并确保已经配置好环境变量。转载 2023-12-12 10:53:06 · 121 阅读 · 0 评论 -
flutter 设置支持桌面应用
7. 构建完成后,可以在 build/ 文件夹中找到生成的应用程序。您可以在终端中运行它,或将其复制到其他计算机中。5. 编辑 main.dart 文件,添加支持各种平台的 main 方法,并按照需要执行操作。该命令将使 Flutter 支持 Windows、MacOS 和 Linux 操作系统。1. 安装 Flutter SDK,并确保已经配置好环境变量。转载 2023-12-11 16:31:17 · 131 阅读 · 0 评论 -
flutter Xcode iOS flutter 跑通真机模拟器
这时候只需要注释掉podfile里的版本限制即可,例如:platform :ios, '11.0'。如果报安全问题,可以再执行一下命令。原创 2023-12-06 13:18:55 · 885 阅读 · 0 评论 -
Mac安装Protobuf 2.5.0终极版
兄弟们,都2023年了,目前Protobuf稳定版本已经更新到了22.3了,为啥还要使用古老的2.5.0版本呢,别问,问就是多余了,我的原因是IM开业服务端只支持2.5.0版本,如果你愿意,请把原因打在评论区,废话不多说,直接上踩过无数坑的干货,如果对你有帮助,请给一个免费的小心心啦。转载 2023-11-27 10:37:49 · 521 阅读 · 0 评论 -
Flutter:LayoutBuilder和AfterLayout
【代码】Flutter:LayoutBuilder和AfterLayout。转载 2023-11-09 17:55:33 · 203 阅读 · 0 评论 -
flutter CustomScrollView高性能滚动
官话:Flutter中提出一个Sliver(中文为“薄片”的意思)概念,如果一个可滚动组件支持Sliver模型,那么该滚动可以将子组件分成好多个“薄片”(Sliver),只有当Sliver出现在视口中时才会去构建它,这种模型也称为“基于Sliver的延迟构建模型”。可滚动组件中有很多都支持基于Sliver的延迟构建模型,如ListView、GridView,CustomScrollView但是也有不支持该模型的,如SingleChildScrollView(性能很低,所有UI都会完整的绘制)。转载 2023-11-09 17:51:53 · 349 阅读 · 0 评论 -
Flutter--PageView学习
PageView:滑动视图列表,类型Android的ViewPage控件,不过PageView支持上下滑动,可制作轮播图。转载 2023-11-09 17:49:06 · 1915 阅读 · 0 评论 -
flutter中当CustomScrollView嵌套ListView或其他瀑布流插件时滚动不一致与显示错误
在学习过程中碰到一个需求,转载 2023-11-09 17:47:10 · 669 阅读 · 1 评论 -
源码分析 Flutter 的 setState 过程
由于 build 方法重新构建了组件配置,因此会调用对应的 Widget 的构造函数和 build 方法。方法,虽然不一定会重新渲染,但是这整棵树的遍历的性能开销也很高。,也就是父节点上的操作——当一个子元素不再属于父元素构建的渲染树时,就会加入到不活跃的元素列表中。内容看着很多,我们来理一下渲染的状态流转,这是一个元素的生命周期的状态图。往上溯源,发现整个的类层级是下面这样的,其中。配置和渲染树做桥接的对象,也就是实际的渲染过程更多的是由。的使用没问题,首先,像之前篇章说的那样,它会重新构建整个。转载 2023-11-03 11:15:36 · 488 阅读 · 0 评论 -
从InheritedWidget深入了解 Flutter 状态管理机制(下)
接下来是对 ModelBinding 类进行改造,这里一个是需要传递一个获取泛型对象的方法 create 给构造函数,另外就是将之前放在 ViewModel的获取模型对象的方法和更新方法提升到 ModelBinding 类来,并且变成泛型方法,从而对外只需要 ModelBinding 类就可以完成状态模型对象的获取和更新,最大程度简化状态模型对象的实现。而通过泛型的使用,我们构建了一个最简单的通用状态管理组件。当然,实际应用中的状态管理远比这复杂,但是明白了其中的原理,对我们优化性能会有更大的帮助。转载 2023-11-03 11:14:25 · 51 阅读 · 0 评论 -
从InheritedWidget深入了解 Flutter 状态管理机制(上)
本篇介绍的构建 MVC 应用的方式并不是唯一的。本篇介绍了 Flutter 应用中的 MVC 模型,对于 Flutter 而言,应用中模型实际上就是组件的状态。当然,这个版本还存在一个缺陷,那就是更改状态的回调方法还是需要沿着组件树传递,这个我们在下篇会改造一个更通用的。使用上面的方式写代码的肯定是个草包( 这话不是我说的,误伤了请自醒——我们之前的示例代码也是这么写的,确实很初级)。替换该对象也可能更复杂,例如如果对象引用的 对象需要进行生命周期管理,那么替换该模型的时候可能会需要销毁部分旧的对象。转载 2023-11-03 11:13:38 · 97 阅读 · 0 评论