随笔分类 -  Flutter

摘要:一、什么是 Completer? Completer 是 Dart 异步库 dart:async 中的一个类,用于创建和控制一个 Future。它允许开发者手动完成一个 Future,使得 Future 的完成时机可以由代码逻辑自由控制,而不是由某个异步操作自动决定。 简单说,Completer 是 阅读全文
posted @ 2025-05-30 16:36 fengMisaka 阅读(180) 评论(0) 推荐(1)
摘要:一、StreamBuilder/FutureBuilder 在 Flutter 中,StreamBuilder 和 FutureBuilder 都是用于处理异步数据源的常用组件。它们允许你在等待异步操作完成时更新 UI。尽管它们的功能类似,但它们适用于不同的异步数据源类型。 1.1 FutureBu 阅读全文
posted @ 2025-05-30 14:41 fengMisaka 阅读(127) 评论(0) 推荐(1)
摘要:在 Flutter/Dart 中,async 和 await 是处理异步编程的核心关键字,它们可以让你以同步的方式编写异步代码,显著提高代码的可读性和可维护性。 一、同步/异步的理解 await:同步机制 同步操作会阻止其他操作执行,直到完成为止。同步就好比打电话一样,打电话时都是一个人在说另一个人 阅读全文
posted @ 2025-05-30 14:41 fengMisaka 阅读(421) 评论(0) 推荐(0)
摘要:Flutter 中的 Navigator 和 Overlay 是管理页面导航和叠加层显示的核心机制,二者紧密协作但职责不同。以下是它们的详细对比和工作原理分析: 一、Navigator 机制 (1)核心功能 页面堆栈管理:采用栈结构(LIFO)管理路由页面(Route) 导航操作:提供 push/p 阅读全文
posted @ 2025-05-29 18:11 fengMisaka 阅读(133) 评论(0) 推荐(0)
摘要:Flutter中的 Overlay 是一种用于在应用程序的 UI 堆栈上显示临时内容的机制。它允许开发者在不影响现有 UI 结构的情况下,将新的 UI 元素叠加在现有内容之上。以下是 Overlay 的详细使用,包含基础到高级的用法。 一、Overlay 基础概念 Overlay 是一个可以包含多个 阅读全文
posted @ 2025-05-29 16:48 fengMisaka 阅读(783) 评论(0) 推荐(1)
摘要:这里在上一篇博客:Flutter QQ聊天项目(2):消息与联系人界面实现 的基础上,进一步扩展实现了可以选择“最近聊天消息”来切换不同的聊天界面进行对话。先看下效果图: 一、全局事件总线类的实现 要实现点击不同"最新消息项",进而显示不同的"聊天消息列表",需要用到“全局事件总线”来发送所点击的“ 阅读全文
posted @ 2025-04-21 15:53 fengMisaka 阅读(205) 评论(0) 推荐(1)
摘要:这里在上一篇博客:Flutter QQ聊天项目(1):登录界面实现 的基础上,进一步扩展实现了包含消息列表界面和联系人界面的主界面,在登录界面成功登录即可进入。先看下效果图: 一、初步实现主界面 1.1 主界面(MainWidget.dart) 这里就初步实现了一个主界面框架,左侧是菜单按钮列表,中 阅读全文
posted @ 2025-03-04 15:27 fengMisaka 阅读(219) 评论(0) 推荐(0)
摘要:下面介绍 Flutter 最基本的通用项目框架搭建,顺便实现一个 QQ 聊天界面,这里只先实现了 QQ 登录界面。先看下效果图: 一、运用技术 编辑器:VS Code 框架技术:Flutter3.104 + Dart3.105 路由/状态管理:get^4.6.6 更具体的: 使用ScreenUtil 阅读全文
posted @ 2025-03-04 14:03 fengMisaka 阅读(254) 评论(0) 推荐(0)
摘要:在 Flutter 中,Visibility是一个用于根据布尔值条件显示或隐藏小部件的控件。使用Visibility可以避免不必要的布局占用,因为它实际上会从布局树中移除符合条件的小部件。 一、基础用法 Visibility最基本的用法是通过visible属性控制子控件的可见性: Visibilit 阅读全文
posted @ 2025-02-13 16:55 fengMisaka 阅读(344) 评论(0) 推荐(0)
摘要:在 Flutter 中,拖拽功能可以通过多种方式实现,具体取决于你的需求。Flutter 提供了丰富的 API 来支持拖拽操作,以下是几种常见的实现方式: (1)Draggable 和 DragTarget Draggable 和 DragTarget 是 Flutter 中用于实现拖拽功能的核心组 阅读全文
posted @ 2025-02-13 16:54 fengMisaka 阅读(940) 评论(1) 推荐(0)
摘要:一、Flutter初识 下面博客介绍了 Flutter 的基本介绍、环境搭建、第一个项目创建运行等等: Flutter初识(1):初识Flutter - fengMisaka - 博客园 Flutter初识(2):搭建Flutter开发环境 Flutter初识(3):Flutter开发初体验 Flu 阅读全文
posted @ 2025-02-12 15:09 fengMisaka 阅读(554) 评论(0) 推荐(0)
摘要:一、Key是什么? 用官方的说法就是:Key 是 Widget、Element 和 SemanticNodes 的唯一标识符。 组件在更新的时候,其状态的保存主要是通过判断组件的类型或者 key 值是否一致。因此,当各组件的类型不同的时候,类型已经足够用来区分不同的组件了,此时我们可以不必使用 ke 阅读全文
posted @ 2025-01-10 17:28 fengMisaka 阅读(281) 评论(0) 推荐(0)
摘要:一、EventBus的基本概念 Flutter EventBus 是一种用于在 Flutter 应用程序中实现组件间通信的事件总线机制。可以用于在应用程序中实现各个组件之间的通信。它基于发布/订阅模式,允许组件订阅感兴趣的事件,并在事件发生时接收通知。 二、Flutter EventBus的工作原理 阅读全文
posted @ 2025-01-09 14:26 fengMisaka 阅读(1212) 评论(0) 推荐(0)
摘要:一、介绍 上一篇博客:Flutter进阶组件(7):DataTable(数据表格) - fengMisaka - 博客园,介绍了DataTable,下面介绍另外一个常用的表格组件PaginatedDataTable。 PaginatedDataTable是一个展示数据表格并提供分页功能的 widge 阅读全文
posted @ 2025-01-02 15:16 fengMisaka 阅读(827) 评论(0) 推荐(0)
摘要:DataTable是一个用于展示数据的表格组件,它允许开发者以一种结构化和可滚动的方式展示数据集。DataTable非常适合展示详细信息,如表格数据、统计数据或配置选项。 一、创建基本的DataTable 以下是创建一个基本DataTable的示例: import 'package:flutter/ 阅读全文
posted @ 2024-12-31 16:44 fengMisaka 阅读(1204) 评论(0) 推荐(0)
摘要:Form是 Flutter 中的一个 widget,它负责管理表单的数据和验证逻辑。Form通常与TextFormField等子 widget 结合使用,以创建输入字段并处理用户的输入。 一般来说,每当你需要收集用户输入的时候,你都可以使用Flutter表单。这包括但不限于以下情况: 用户注册和登录 阅读全文
posted @ 2024-12-26 09:43 fengMisaka 阅读(742) 评论(0) 推荐(0)
摘要:ExpansionTile是一个常用的折叠列表项,它允许用户点击标题来展开或折叠更多的内容。这个组件在实现可折叠列表、FAQ 部分或显示详情信息时非常有用。 一、基本使用 使用ExpansionTile的基本方式如下: import 'package:flutter/material.dart'; 阅读全文
posted @ 2024-12-26 09:43 fengMisaka 阅读(1520) 评论(0) 推荐(0)
摘要:在 Flutter 的Cupertino组件库中,CupertinoSwitch是一个用于创建 iOS 风格开关控件的 widget。它提供了一个简洁的滑动开关,允许用户在开启和关闭状态之间进行切换。 一、基本使用 CupertinoSwitch是 Flutter 的 cupertino 库的一部分 阅读全文
posted @ 2024-12-26 09:42 fengMisaka 阅读(395) 评论(0) 推荐(0)
摘要:SwitchListTile是一个包含开关(Switch)的列表项,非常适合用来创建带有标题、副标题以及开关的列表项,常用于设置界面,让用户可以轻松地开启或关闭某个功能。 一、基本使用 SwitchListTile( title: const Text('Enable Notifications') 阅读全文
posted @ 2024-12-26 09:42 fengMisaka 阅读(231) 评论(0) 推荐(0)