Flutter 鸿蒙化实战keyboard_actions 适配 OpenHarmony## 前言随着鸿蒙生态的快速发展越来越多的 Flutter 应用需要适配 OpenHarmony 平台。但生态早期大量常用三方库只有 Android / iOS 实现鸿蒙侧只能自己造轮子。为了解决这个问题CPF-Flutter 社区对一批高频使用的 Flutter 三方库做了 OpenHarmony 平台适配统一托管在 GitCode 的CPF-Flutter 组织 下全部通过 TAG 版本隔离、配套门禁编译验证开箱即用。本篇是系列文章之一主角是keyboard_actions—— 键盘工具栏插件。## keyboard_actions 是什么keyboard_actions原库 4.2.0为表单输入框提供一套键盘增强能力常见于 iOS 风格的键盘上方工具栏 / 完成按钮-键盘工具栏在键盘上方显示自定义工具条上一个/下一个/完成按钮等-多输入框联动多个TextField间上一个/下一个自动聚焦切换-完成按钮收起键盘方便表单收尾。典型场景登录/注册、搜索、多字段表单等需要引导用户完成输入并切换焦点的页面。## 适配情况| Flutter 框架版本 | TAG 名称 | 分支名 || — | — | — || 3.7 | 4.2.0-ohos-1.0.0 | master || 3.22 | 4.2.0-ohos-1.0.0 | master || 3.27 | 4.2.0-ohos-1.0.0 | master || 3.35 | 4.2.0-ohos-1.0.0 | master |已验证环境3.35 为例Flutter 3.35.8-ohos-0.0.1SDK 6.0.1(21)DevEco Studio 6.0.1.260ROM 6.0.0.120 SP6。## 快速接入在 pubspec.yaml 中添加 git 依赖yamldependencies: keyboard_actions: git: url: https://gitcode.com/CPF-Flutter/fluttertpc_keyboard_actions.git # 按你的 Flutter 框架版本从上方映射表选择对应 TAG ref: 4.2.0-ohos-1.0.0执行bashflutter pub get## 使用示例### 为输入框配置键盘工具栏dartimport package:flutter/material.dart;import package:keyboard_actions/keyboard_actions.dart;class LoginPage extends StatefulWidget { const LoginPage({super.key}); override StateLoginPage createState() _LoginPageState();}class _LoginPageState extends StateLoginPage { final FocusNode _usernameFocus FocusNode(); final FocusNode _passwordFocus FocusNode(); late final KeyboardActionsConfig _config KeyboardActionsConfig( actions: [ // 账号输入框下一个 → 跳密码框 KeyboardActionsItem( focusNode: _usernameFocus, displayCloseWidget: false, nextFocusNode: _passwordFocus, ), // 密码输入框显示完成 KeyboardActionsItem( focusNode: _passwordFocus, displayCloseWidget: true, onClose: () FocusScope.of(context).unfocus(), ), ], ); override void dispose() { _usernameFocus.dispose(); _passwordFocus.dispose(); super.dispose(); } override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: const Text(登录)), body: KeyboardActions( config: _config, child: Column( children: [ TextField(focusNode: _usernameFocus, decoration: const InputDecoration(labelText: 账号)), TextField(focusNode: _passwordFocus, decoration: const InputDecoration(labelText: 密码)), ], ), ), ); }}### 自定义工具栏dartKeyboardActionsConfig( actions: [ KeyboardActionsItem( focusNode: focusNode, footerBuilder: (context, config) KeyboardToolBar( config: config, children: [ const Text(自定义操作), const SizedBox(width: 12), KeyboardToolBarAction(text: 完成, onPressed: () FocusScope.of(context).unfocus()), ], ), ), ],)## API 支持一览| API | 说明 | ohos 支持 || — | — | — || KeyboardActions | 包裹输入框并注入键盘行为 | yes || KeyboardActionsConfig | 键盘行为配置 | yes || KeyboardActionsItem | 单个输入框的配置项 | yes || KeyboardToolBar | 自定义键盘工具栏 | yes | [!TIP] ohos Support 为 yes 表示鸿蒙平台支持该能力使用方式与 iOS / Android 保持一致。## 仓库地址- OpenHarmony 适配仓库https://gitcode.com/CPF-Flutter/fluttertpc_keyboard_actions- 使用问题反馈请到 CPF-Flutter 社区 Issues 提交问题社区统一收集跟进本仓库 Issues 区亦可。## 系列预告截至目前CPF-Flutter 社区已完成250 个Flutter 三方库的 OpenHarmony 平台适配覆盖权限管理、UI 组件、设备信息、位置服务、媒体处理、网络、支付等多个领域完整的适配清单含每个库的版本映射表见-适配总览文档https://gitcode.com/CPF-Flutter/docs/blob/main/ThirdpartyLibrarites.md-仓库组织https://gitcode.com/CPF-Flutter本系列后续会陆续挑选高频库展开讲解比如支付宝支付tobias、JS 桥接flutter_jsbridge_plugin、User-Agentfk_user_agent、设备信息device_util等。如果你的 Flutter 应用正在计划适配鸿蒙欢迎关注 CPF-Flutter 组织也欢迎参与共建。
企业数字化 ERP 产品动态
相关推荐
英雄联盟做的广告视频网站怎么选不踩坑3个细节保平安 英雄联盟做的广告视频网站怎么选不踩坑3个细节保平安 网站被黑挂马,后台密码全泄露,页面突然跳转博彩站,这种噩梦谁没经历过?别慌,这事儿跟你的代码写得漂不漂亮没关系,多半是服务器配置和权限没控住。很多做游戏周边站的朋友,尤其是搞英雄联盟广告视… · 2026/9/27 14:28:37
专业网页设计制作价格揭秘:5个防坑注意事项 专业网页设计制作价格揭秘:5个防坑注意事项 找过建站服务的老板都知道,报价单上的数字往往让人心里打鼓。三万的项目敢报五万,五千的需求敢收一万,这种信息不对称就是行业最大的坑。 很多客户在咨询 专业网页设计制作价格… · 2026/9/27 14:28:23
2026年会议记录神器实测:TaoToken统一Key接入录音转文字工具,准时下班 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 14:28:15
开源!比claude和codex的CLI更好用10倍的工具:TaoToken统一Key接入实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 15:29:16
找免费认证网站避坑指南:5个关键步骤速查手册 找免费认证网站避坑指南:5个关键步骤速查手册 找建站公司最怕什么?不是技术牛不牛,而是报价单里藏着无数隐形消费,最后发现基础认证都得加钱。我见过太多中小企业老板,签完合同才惊觉:HTTPS证书要另买,SSL部署要加费,甚至ICP备案指导都算… · 2026/9/27 15:28:39
蜂鸟网站建设哪家好?3步破解需求拖延,报价透明不踩坑 蜂鸟网站建设哪家好?3步破解需求拖延,报价透明不踩坑 改个按钮颜色要等三天,调个页面布局拖一周,这种建站公司还找谁?当你手里拿着【蜂鸟网站建设】的报价单,心里却在打鼓“ 哪家好… · 2026/9/27 15:28:39
西安保洁公司网站建设避坑实录:3万预算搞定高转化官网 西安保洁公司网站建设避坑实录:3万预算搞定高转化官网 还在为找不着合适的建站模板头疼?那种千篇一律的模板网站,不仅显得廉价,更让客户觉得你们不专业,根本接不住高端订单。很多西安本地的保洁老板在咨询 建站报价… · 2026/9/27 15:28:21
5个网站设计的技巧:搞定域名服务器,源码下载不踩坑 5个网站设计的技巧:搞定域名服务器,源码下载不踩坑 做网站最让人头秃的,往往不是写代码,而是域名和服务器。很多甲方拿着预算来,问的第一句话就是:“这域名怎么买?服务器选哪个?为什么我下的源码跑不起来?”… · 2026/9/27 15:28:21
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01