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等相关功能。

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

相关推荐
Traced back11 分钟前
[特殊字符] Vue3 常用指令大全
前端·javascript·vue.js
Highcharts.js14 分钟前
在React中使用图表库时,优先选择组件化方案可以降低开发复杂度
前端·javascript·react.js·数据可视化·highcharts
竹林81840 分钟前
从零到一:在 React 前端中集成 The Graph 查询 NFT 持有者数据实战
前端·javascript
山西茄子42 分钟前
GstAggregator的aggregate
开发语言·前端·javascript·gstreamer
Sailing1 小时前
🚨别再滥用 useEffect 了!90% React Bug 的根源就在这
前端·javascript·面试
河马老师1 小时前
写这需求快崩溃了,幸好我会装饰器模式
前端·javascript·面试
wuhen_n1 小时前
《Vue3+TS+Vite 高效编程与优化实践》专栏收尾
前端·javascript·vue.js
Highcharts.js1 小时前
React如何集成图表?推荐使用Highcharts官方React封装库
javascript·react.js·前端框架·ecmascript
清寒一缕震丝魂1 小时前
个人原创自定义计算公式组件可继续扩展
javascript·vue.js·elementui·ruoyi
晓得迷路了1 小时前
栗子前端技术周刊第 122 期 - TypeScript 6.0、pnpm 11 Beta、Storybook 10.3.0...
前端·javascript·typescript