目录

Flutter signals 状态管理入门:signal、computed、effect 和 batch 怎么用

本文围绕 Flutter 状态管理框架 signals 的几个核心能力展开:`signal`、`computed`、`effect` 和 `batch`。文章会结合示例代码说明它们各自解决什么问题、数据是怎样联动的,以及在 Flutter Widget 中如何落地使用。 在 Flutter 里做状态管理,很多人第一反应还是 `setState`、Provider 或其他更完整的方案。

Flutter signals 状态管理入门:signal、computed、effect 和 batch 怎么用

Flutter 如何监听 TextField 长按菜单里的粘贴点击事件

Flutter 的 `TextField` 不能像 Android 原生 `EditText` 那样直接监听长按菜单里的粘贴点击事件。本文用一个可落地的做法说明,如何通过自定义 `contextMenuBuilder` 包装 `Paste` 按钮,在保留原有菜单行为的同时插入业务回调。 在 Flutter 项目里,监听输入框内容变化并不难,真正麻烦的是分辨用户是不是点了长按菜单里的“粘贴”。

Flutter 如何监听 TextField 长按菜单里的粘贴点击事件

Flutter Bloc v7.3+ 事件处理新写法与同步异步详解

Flutter Bloc 库 v8.0 将弃用 mapEventToState,推荐使用 on 方法。新版 on 默认支持异步非阻塞并发执行,适合事件总线场景;若需保持旧版串行阻塞逻辑,可通过 asyncExpand Transformer 实现同步队列。本文结合示例代码详细解析新老版本差异及参数配置方法。

Flutter DateTime日期转换详解:从时间戳到格式化输出

本文详细介绍Flutter中DateTime类的核心用法,涵盖将当前时间转换为13位毫秒时间戳、将字符串或时间戳解析为DateTime对象、利用Duration进行时间加减计算以及isBefore/isAfter时间比较方法。通过清晰代码示例,帮助开发者高效处理移动端应用中的各种日期逻辑需求。

Flutter 优雅拦截系统键盘弹出

在 Flutter 中开发自定义键盘时,经常需要屏蔽系统原生键盘。直接复制官方代码维护成本高,调用隐藏 API 易导致布局闪烁。本文介绍通过重载 createBinaryMessenger 拦截 SystemChannels.textInput 消息的方案,结合 FocusNode 状态判断,实现点击输入框不弹系统键盘并显示底部自定义键盘的完美体验。

Flutter 优雅拦截系统键盘弹出

Flutter webview_flutter 4.x JS交互与高度自适应实战

本文详解Flutter webview_flutter 4.x版本的JS交互机制。针对WebView类拆分的新特性,演示了如何通过addJavaScriptChannel实现Dart与JS的双向通信,并对比了页面主动报告高度与自动注入ResizeObserver监听的高度自适应方案。同时讲解了拦截URL跳转原生页面及JS调用原生功能的方法,旨在解决新版本开发中的常见痛点。

Flutter webview_flutter 4.x JS交互与高度自适应实战

Flutter Bloc add同类型事件只响应一次的原理与修复

在Flutter中使用Bloc模式时,连续调用两次add()若触发相同的状态变更,第二次操作往往会被忽略。这是因为底层Cubit比较新旧状态的内存地址,若对象为同一实例则跳过渲染。本文解析其源码逻辑,并提供通过实现copyWith生成新对象或使用Equatable库进行值比较的两种标准解决方案。

Flutter Bloc add同类型事件只响应一次的原理与修复

Flutter CustomPaint 自定义绘制实战:从基础到五子棋

本文详细介绍 Flutter 中 CustomPaint 组件的用法,解析 painter、foregroundPainter 与 child 的层级关系。通过绘制点、线、图形及五子棋案例,展示 Canvas 常用 API。最后提供 shouldRepaint 使用建议与分层绘制策略,帮助开发者实现高性能的复杂 UI 自定义绘制。

Flutter CustomPaint 自定义绘制实战:从基础到五子棋
更多信息

专题列表