
Flutter项目开发全套教程
文章平均质量分 59
本专栏从详述flutter 中所有的UI组件,到基本功能性操作,再到特效widget的开发到开发一个app
早起的年轻人
先后从事在 java EE 领域、Android开发架构领域、iOS开发领域、小程序开发领域、前端开发、产品设计领域、项目管理学领域等,并在大量的实践中积累了丰富的经验,也形成了一套完整的移动互联网开发解决方案
在各大技术社区刊登技约1000多篇术分享文章,同时录制了发布了多个Flutter从简到详系列的视频教程以及Android 、iOS、微信小程序系列视频教程
2021年出版《Flutter组件精讲与实战》清华大学出版社出版、《Flutter 实战应用开发》机械工业出版社出版
2022年出版《Flutter深度探索企业应用开发》清华大学出版社出版、《鸿蒙OS应用实战》机械工业出版社出版
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Flutter BigInt 是用于处理任意精度整数的特殊数字类型,专为解决超大整数运算需求而设计
在Flutter/Dart中,BigInt是用于处理的特殊数字类型,专为解决超大整数运算需求而设计。原创 2025-04-17 11:34:10 · 657 阅读 · 0 评论 -
Flutter中如何判断一个计算任务是否耗时?
【代码】Flutter中如何判断一个计算任务是否耗时?原创 2025-04-13 21:51:24 · 601 阅读 · 0 评论 -
Flutter调优方面Observatory服务你了解吗
flutter run --observatory-port 是 Flutter 开发里用于运行应用程序,同时指定 Observatory 服务端口的命令。Observatory 是 Dart 提供的一个工具,它可用于调试和分析 Dart 应用程序,包含 Flutter 应用。原创 2025-03-21 14:55:08 · 543 阅读 · 0 评论 -
Flutter 用户电话号码 中间显示*
replaceAllMapped 方法会对字符串中所有匹配正则表达式的部分进行替换。它接收两个参数,第一个是正则表达式对象,第二个是一个回调函数。match.group(1):会返回第一个捕获组匹配到的内容,也就是电话号码的前三位。match.group(2):会返回第二个捕获组匹配到的内容,也就是电话号码的后四位。原创 2025-03-20 20:45:56 · 461 阅读 · 0 评论 -
在 VS Code 中 打开 Flutter 的分析工具 DevTools
DevTools是Dart和Flutter的一套性能和调试工具。Flutter DevTools和Dart DevTools指的是同一组工具。在 VS Code 中打开 Flutter 的。原创 2025-03-08 18:02:13 · 1407 阅读 · 0 评论 -
Flutter 3.27.0 将 SystemUiMode 的默认值设置为 Edge-to-Edge如果适配不好,可能会影响你的应用整体视觉UI效果
默认情况下,Flutter 应用中使用的样式在 Android 清单文件 ( ) 中设置your_app/android/app/src/main/AndroidManifest.xml。通常,样式由 表示@style,并帮助设置应用的主题。在 Flutter 3.27 之前,如果开发者的Flutter 应用默认以 Android 14 为目标,并且不会自动选择进入无边框模式,从 Flutter 版本 3.27 开始它将以 Android 15 为目标,并自动为您的应用选择无边框模式。原创 2025-03-04 15:38:38 · 741 阅读 · 0 评论 -
Flutter 3.29.0 修改 ImageFilter.blur 的默认模糊效果在图像边缘的填充方式
现在,默认值为null,并指定自动选择,除非指定了特定的磁贴模式。仅填充原始区域:超出原始范围的部分会被透明填充(如果图像有透明度),否则显示未定义行为。例如:A-B-C 会变成 A-B-C-B-A-B-C…,避免重复时的生硬接缝。例如:如果渐变的最后一个颜色是红色,超出渐变范围的区域会全部填充红色。重复平铺:将渐变或图像从头到尾无限重复,不进行任何镜像处理。镜像重复:每次重复时,渐变或图像会反向排列,形成镜像效果。边缘颜色延伸:将渐变边缘的颜色无限延伸到剩余区域。适合创建无缝重复的图案。原创 2025-02-28 08:26:14 · 338 阅读 · 0 评论 -
Flutter 3.29.0 版本对颜色Color做出的改动 Display P3你了解吗
Color的更改ColorSpace 的更改Display P3是苹果为平衡广色域与消费级显示需求优化的色彩标准,通过扩展色域和兼容性设计,提升了视觉体验,尤其适合创意工作者和高质量媒体消费。原创 2025-02-27 15:11:35 · 781 阅读 · 0 评论 -
Flutter 3.29.0 BackdropGroup 共享背景滤镜层将提高多个滤镜的性能
Flutter中显示多个背景区滤镜的应用程序现在可以使用新的widget BackdropGroup 和新的 BackdropFilter.grouped 构造函数。这些可以在 Skia 后端的基础上进一步提高多个模糊效果的性能,BackdropFilter 为所有子项建立共享背景层的小部件,共享背景滤镜层将提高多个滤镜的性能,同时必须使用[BackdropFilter.grouped]构造函数。如下案例,ListView下所的的子Item者有滤镜,使用BackdropGroup来优化使用。原创 2025-02-24 10:53:42 · 295 阅读 · 0 评论 -
Flutter 3.29.0 3Android和iOS上的Flutter在应用程序的主线程上执行Dart代码
之前,Flutter 在与平台主线程不同的线程(UI 线程)上执行 Dart 代码。这在理论上允许更高的吞吐量,前提是平台和 UI 线程都被占用,但代价是大多数平台互操作需要序列化和异步消息传递。不得叹气一下,有个很大的疑问,比如 Dart 和 Native 平台同一线程之后,那么「滚动 / 动画」是否会因此出现相互影响,特别是第三方插件处理不当的时候,反而可能更加卡顿。这是移动平台上一系列改进平台互操作性的更改中的第一部分,因为它允许在平台之间进行同步调用,而无需序列化和消息传递的开销。原创 2025-02-23 15:48:55 · 234 阅读 · 0 评论 -
Flutter 3.29.0更新了进度条ProgressIndicator以符合最新的Material Design 3规范
此版本更新了CircularProgressIndicator和LinearProgressIndicator,以符合最新的Material Design 3规范。要使用更新的样式,请将year2023属性设置为false,或将ProgressIndicatorThemeData.year2023设置为false。滑块默认为上一个“材质3”样式。要启用最新设计,请将year2023设置为false,或将SliderThemeData.year2023设置为false。原创 2025-02-23 14:54:36 · 600 阅读 · 0 评论 -
Flutter 3.29.0 改进了CupertinoAlertDialog在黑暗模式下的原生保真度
【代码】Flutter 3.29.0 改进了CupertinoAlertDialog在黑暗模式下的原生保真度。原创 2025-02-20 21:53:06 · 199 阅读 · 0 评论 -
Flutter 3.29.0 CupertinoSliverNavigationBar 用于创建 iOS 风格可滚动导航栏的组件
是 Flutter 中用于创建 iOS 风格可滚动导航栏的组件【公众号biglead】。2025年2月12日:3.29.0发布。原创 2025-02-19 14:56:41 · 1064 阅读 · 0 评论 -
Flutter 3.29.0 新特性 CupertinoNavigationBar 可配置bottom属性
CupertinoNavigationBar和CupertinoSliverNavigationBar现在接受底部小部件,通常是搜索字段或分段控件。Flutter 3.29版本优化了开发流程并提升了性能,对 Impeller、Cupertino、DevTools 等进行了更新。原创 2025-02-18 18:06:56 · 540 阅读 · 0 评论 -
Flutter CupertinoNavigationBar iOS 风格导航栏的组件
是 Flutter 中用于创建具有 iOS 风格导航栏的组件,它提供了类似 iOS 应用中导航栏的外观和交互效果。下面将详细介绍它的相关信息和具体用法。原创 2025-02-18 16:53:14 · 700 阅读 · 0 评论 -
Flutter 中安卓平台tools:ignore=“DiscouragedApi“ 是什么意思
在 Android 开发中,是一个用于忽略特定开发工具警告的属性设置,下面为你详细解释其含义和用途【公众号 biglead】。原创 2025-02-18 15:58:52 · 450 阅读 · 0 评论 -
Flutter 开发 安卓权限 USE_FINGERPRINT
USE_FINGERPRINT 权限仅针对指纹识别,而 Android 9 引入了统一的生物识别框架 BiometricPrompt,支持指纹、面部识别等多种生物认证方式,并简化了开发流程。替代权限:使用 USE_BIOMETRIC 权限替代 USE_FINGERPRINT,该权限涵盖更广泛的生物识别类型(如指纹、虹膜、面部等)。今天在整理Flutter项目时,在安卓平台上,清单文件中提示一个权限过期了【公众号 biglead】原创 2025-02-18 15:58:24 · 217 阅读 · 0 评论 -
Flutter中 List列表中移除特定元素
方法会直接在原列表中移除第一个匹配的特定元素。如果元素存在于子列表中,它会被移除;方法会移除列表中所有满足指定条件的元素。如果要移除子列表中所有等于特定值的元素,可以使用这个方法。这种方法不会修改原列表,而是返回一个不包含特定元素的新子列表。方法返回一个布尔值,表示是否成功移除元素。相反,它会保留列表中所有满足指定条件的元素,移除不满足条件的元素。方法会根据指定的条件筛选元素,然后通过。的元素,最后将这些元素组成一个新的列表。方法会遍历子列表,移除所有等于。的元素,移除等于该元素的元素。原创 2025-02-15 21:18:38 · 821 阅读 · 0 评论 -
Flutter List 的 every 如果回调函数抛出异常 应该如何处理
在使用List的every。原创 2025-02-07 08:39:05 · 673 阅读 · 0 评论 -
Flutter String 按 ,。分割
在 Flutter 中,如果你想将一个字符串按特定的字符(例如中文逗号 , 和英文句号 .)进行分割,可以使用 Dart 语言的字符串处理功能。具体来说,你可以使用 split 方法,并传入一个正则表达式来匹配这些字符。在这个示例中:text 是要分割的字符串。]') 创建了一个正则表达式,用于匹配中文逗号 , 和英文句号 .。split 方法使用这个正则表达式将字符串分割成一个列表。原创 2024-10-06 17:10:31 · 1007 阅读 · 0 评论 -
flutter GestureDetector 的 behavior属性
flutter GestureDetector 的 behavior属性原创 2024-08-22 00:27:26 · 779 阅读 · 0 评论 -
Flutter Inspector 视图调试工具突然不能用了
Android Studio 启动时需要 Java 运行时环境(Java Runtime Environment,JRE)来执行 Java 代码和构建 Android 应用程序。Flutter Inspector 是 Flutter 开发工具中的一个可视化调试工具,它提供了一种在运行时检查和调试 Flutter 应用程序的方法。2、搜索 boot runtime,找到「Choose Boot Java Runtime for the IDE」选项。原创 2024-03-15 22:08:38 · 1749 阅读 · 3 评论 -
Flutter 如何检查一个小部件是否可见? visbility_detector 来帮你实现
简单的应用场景就是在A页面中点击一个按钮打开B页面,A页面失去焦点,然后B页面关闭消失,A页面重新获取得了焦点,同时回调onResum事件。在本文中,我们将学习一个重要的Flutter小部件。很多时候,在应用程序中,我们必须知道一个小部件是否可见。类似Android的onResum事件,在Flutter中,需要使用一些额外的方法来实现这个事件检测。现我也可以使用 visibilityDetector 在页面中做统一的处理。如果你有兴趣,可以关注一下微信公众号 biglead 程序员知识架构。原创 2024-02-28 08:59:15 · 1706 阅读 · 0 评论 -
Flutter 3.19.0 版本新特性
其实在每个版本的更新中呢,都会合并很多很多的这个合并请求、还有开发建议,那么本版本的也不例外,社区官方发布的公告是。当然,如果你的时间允许的话,你可以去查看一下这些请求,对开发者来讲肯定是受益匪浅的。小编这里使用 fvm来管理Flutter多版本SDK,现在来下载新版本体验一波。原创 2024-02-22 21:46:03 · 2101 阅读 · 0 评论 -
flutter go_router 官方路由(一)基本使用
基本简单参数传递,比如一个 userId,页面路由定义如下:ThreePage就是我定义的目标页面,它需要一个参数 userId。“/” 配置的就是加载的默认的启动的首页面,然后我这里面相当于是配置了两个基本的页面。点击一个按钮跳转目标页面,我这里传的参数 userId的值为 123。如下图所示,我当前使用的flutter版本为3.16.0。使用 Navigator 正常操作如下“复杂传参数 请看后续。原创 2024-02-04 09:37:54 · 3172 阅读 · 0 评论 -
Flutter isolate 小笔记 记录一下功能
我开发的业务是这样的,在页面中,我要开启录音功能,然后呢同时我也要上传,就是上传的录音文件,所以这里边儿我如果都放在我的这个默认线程中,他是非常卡的,就是我录音的过程中我的页面滑动是很卡的,有些时候我4核的手机不太明显,但是我八核的手机,会卡的很明显,所以呢我考虑把录音和这个嗯,文件上传放到 各自的 isolate。那么在 isolate 中,如果调用平台的能力就需要 主线程的标识,就需要使用到 BackgroundIsolateBinaryMessenger了。原创 2024-01-27 20:24:45 · 951 阅读 · 0 评论 -
Flutter Scrollbar滑动条与SingleChildScrollView的结合使用的小细节
我在业务开发中,ListView是竖向滑动的,然后 ListView中的每一个小条目比较长,我需要横向滑动,所以 就有了 ListView中多个SingleChildScrollView(横向滑动),但是在视觉上,我期望告知用户可以横向滑动,所以有了 Scrollbar 结合 SingleChildScrollView 来使用。但是两者来使用,多多少少会有点问题,本文章记录小问题。先来看下我的效果最终的核心代码是。原创 2024-01-11 16:58:22 · 1853 阅读 · 0 评论 -
flutter TextPainter 的用法
本文章基于 Flutter 3.16.2 Dart SDK 3.2.2。TextPainter 是 Flutter 中用于在 Canvas 上绘制文本的类。它允许您在自定义的 CustomPainter 中使用 drawText 方法来绘制文本,并可以控制文本的位置、颜色、字体等属性。运行效果如下:就是绘制出一条普通的文本本文案例使用在线测试 https://dartpad.cn/?id现在,绘制一条文本,并在文本下绘制一条下划线(当然你可以是其他任意的图形),核心代码如下。原创 2023-12-08 21:48:19 · 1580 阅读 · 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。原创 2023-11-09 22:51:44 · 669 阅读 · 0 评论 -
Flutter Set存储自定义对象时 如何保证唯一
在Flutter中,Set和List是两种不同的集合类型,List中存储的元素可以重复,Set中存储的元素不可重复。方法用于返回对象的哈希码,这是一个整数。在自定义类中,需要覆盖。在这个例子中,第三个对象是重复的,因为它与第一个对象具有相同的。如果你想在Set中存储自定义对象,你需要确保对象的唯一性。方法用于比较两个对象是否相等。在自定义类中,需要覆盖。Set会自动忽略重复的对象,确保每个对象是唯一的。方法以确保相等的对象具有相同的哈希码。属性,它们将被视为相等的对象。方法以确保相等的对象返回。原创 2023-11-05 15:31:46 · 597 阅读 · 0 评论 -
Flutter Map 常用操作方法概述
Flutter 中的 Map 是一种键值对的集合,可以存储任意类型的数据,并且可以通过键来访问和操作对应的值。原创 2023-11-05 10:58:32 · 3043 阅读 · 0 评论 -
Android 备案公钥、签名 MD5获取方法
公钥和 MD5 值可以通过安卓开发工具、Keytool、Jadx-GUI 等多种工具获取,本文以 jadx-gui 为例。原创 2023-10-24 16:03:10 · 3596 阅读 · 2 评论 -
Dart Stream与 HttpClient 的结合使用
Dart Stream是一种异步数据流,用于处理异步事件。它类似于其他编程语言中的事件流或观察者模式,可以用于处理一系列的数据事件,并允许开发人员注册监听器来接收这些事件。Dart Stream有两种类型,一种是点对点的单订阅流(Single-subscription),另一种则是广播流(Broadcast)。单订阅流的特点是只允许存在一个监听器,即使该监听器被取消后,也不允许再次注册监听器。而广播流则允许同时存在多个监听器,每个监听器都会收到所有的数据事件。原创 2023-10-24 09:22:13 · 314 阅读 · 0 评论 -
Dart HttpClient 网络请示框架的使用详解
Dart的HttpClient库是一个用于发送HTTP请求的库,它提供了一个简单的API来执行HTTP请求和接收响应。原创 2023-10-24 08:44:03 · 562 阅读 · 0 评论 -
Flutter Image组件如何处理图片加载过程中的错误?
在上面的代码中,通过在initState方法中设置loadErrorBuilder回调函数来处理图片加载过程中的错误。当图片加载失败时,返回的是builder中指定的Widget。原创 2023-10-20 22:07:34 · 2067 阅读 · 1 评论 -
【解码Flutter】新一代渲染引擎 Impeller 大幅度提升渲染效率
Flutter团队相信这解决了Flutter的早发垃圾问题。Impeller在引擎构建时预编译一组更小,更简单的着色器,所以它们不会在运行时编译。原创 2023-09-25 18:36:40 · 1618 阅读 · 0 评论 -
flutter Could not get unknown property ‘ndkVersion’
ndkVersionIfUnspecified替换为ndkVersionIfUnspecified,在flutter-3.7.2\packages\flutter_tools\gradle\flutter.gradle配置如下。使用的 flutter 版本为 3.7.2 ,编译运行 如下。也就是去掉了这个判断。原创 2023-09-03 10:47:03 · 1202 阅读 · 0 评论 -
Dart中List的常用方法概述及使用案例
在Dart中,List是一种有序的集合,它提供了许多有用的方法来操作列表数据。Flutter使用Dart语言开发,所以在Flutter中依然适用。如果您有小程序、APP、公众号、网站相关的需求,您可以通过私信来联系我。如果你有兴趣,可以关注一下我的综合公众号:biglead。下面是List常用的方法概述及使用案例。以上是List常用的方法概述及使用案例。原创 2023-05-15 22:08:26 · 638 阅读 · 0 评论 -
Flutter中IndexedStack的使用详解
IndexedStack是Flutter中的一个布局组件,用于在多个子组件之间切换,并且只显示当前子组件。原创 2023-05-10 19:16:14 · 1428 阅读 · 0 评论 -
Flutter中的异或运算以及十进制转二进制
在Flutter中,异或运算可以通过“^”运算符来实现。异或运算是一种逻辑运算符,当两个操作数的对应位不同时,结果为1,否则结果为0。在这个例子中,a ^ b运算的结果为2,因为5和3的二进制表示中,只有最后一位不同。因此,最终的结果是二进制的010,也就是十进制的2。原创 2023-05-08 11:19:00 · 708 阅读 · 0 评论