Flutter 按键事件监听 RawKeyboardListener

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

class RawKeyTestPage extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _RawKeyTestState();
}

class _RawKeyTestState extends State<RawKeyTestPage> {
  @override
  void initState() {
    super.initState();
  }

  String _value = '';

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
      appBar: AppBar(title: Text('RawKeyboardListener Page')),
      body: RawKeyboardListener(
              autofocus: true,
              onKey: (event) {
                if (event.runtimeType == RawKeyDownEvent) {
                  if(event.data is RawKeyEventDataAndroid){
                    RawKeyEventDataAndroid datga = event.data as RawKeyEventDataAndroid;
                    ///获取按键键值 keycode
                    _value = datga.keyCode.toString();
                    setState(() {

                    });
                    // print('flutter down'+datga.keyCode.toString());
                  }
                }
              },
              focusNode: FocusNode(),
              child:  Text(_value),
            )
          ,
    ));
  }

  @override
  void dispose() {
    super.dispose();
  }
}

PS: 监听蓝牙游戏手柄的按键事件,可以RawKeyboardListener,可以监听到X,Y,A,B等事件,但像左右摇杆的无法监听,只能在容器的Activity中的 onGenericMotionEvent中处理,不知道在Flutter层怎么监听?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值