flutter开发实战-RawKeyboardListener监听键盘事件及keycode。

flutter开发实战-RawKeyboardListener监听键盘事件及keycode。

最近开发过程中遇到外设备的按钮点击触发相应的操作,需要监听对应的keycode来开启游戏或者相关操作。

这里用到了RawKeyboardListener

一、RawKeyboardListener是什么?

RawKeyboardListener是一个Widget,可以用来监听键盘的原始输入事件。

RawKeyboardListener属性

dart 复制代码
focusNode:FocusNode(),
autofocus:是否自动焦点,
onKey:监听回调方法,可以监听按下RawKeyDownEvent,松开RawKeyUpEvent,按下时候触发
child:子Widget

onKey: 可以监听按下RawKeyDownEvent,松开RawKeyUpEvent,按下时候触发

二、实现监听的keycode

实现监听键盘keycode,这里监听的是回车键enter。

dart 复制代码
return RawKeyboardListener(
  focusNode: FocusNode(),
  autofocus: true, // 要开启自动焦点
  onKey: (RawKeyEvent event) {
    if (event is RawKeyDownEvent) {
      // 监听按下RawKeyDownEvent,松开RawKeyUpEvent,按下时候触发
      if (Platform.isAndroid) {
        RawKeyEventDataAndroid rawKeyEventDataAndroid =
            event.data as RawKeyEventDataAndroid;
        if (rawKeyEventDataAndroid.keyCode == 66) {
          // 点击ENTER_CODE
          // 开启游戏
        }
      } else if (Platform.isIOS) {
        RawKeyEventDataIos rawKeyEventDataIos =
            event.data as RawKeyEventDataIos;
        if (rawKeyEventDataIos.keyCode == 66) {
          // 点击ENTER_CODE
          // 开启游戏
        }
      }
    }
  },
  child: Container());

当需要判断下环境Platform.isAndroid或者Platform.isIOS

需要注意的是:要开启自动焦点 autofocus为true。

三、小结

flutter开发实战-RawKeyboardListener监听键盘事件及keycode,可以监听按下,松开,keycode等相关功能。

学习记录,每天不停进步。

相关推荐
Hilaku2 分钟前
为什么 AI 写前端时,总是优先选择 React,而不是 Vue?
前端·javascript·程序员
ailinghao41 分钟前
flutter常用的内置特性
flutter
不简说3 小时前
拖拽DIY表格插件来了!sv-print 七月更新:这次真的能自己拼表格了
前端·javascript·前端框架
辞旧 lekkk3 小时前
【Qt系统相关】鼠标事件
linux·开发语言·qt·学习·计算机外设·萌新
weixin_471383033 小时前
Next.js - 04 - 深入理解next.js渲染原理
前端·javascript·next.js
ssshooter3 小时前
小程序分包页面报 "has not been registered yet" 的隐蔽根因:一个动态 import 拖垮整个分包
前端·javascript·微信小程序
鹏多多3 小时前
Web浏览器后台离线通知方案实现以及兼容指南
前端·javascript·vue.js
yangmu32033 小时前
Vue3 响应式系统深度解析:从 Proxy 到依赖追踪
前端·javascript·vue.js
子非鱼94274 小时前
10-Flutter调用鸿蒙原生能力前置课:MethodChannel和PlatformView准备
学习·flutter·华为·harmonyos
Asize4 小时前
Node path 与 fs 模块:从回调地狱到 async await 的异步进化
javascript·node.js