Flutter 按键事件监听 RawKeyboardListener

Flutter 按键事件监听 RawKeyboardListener,第1张

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

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

class _RawKeyTestState extends State {
  @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层怎么监听?

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/990463.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-21
下一篇2022-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存