Windows10 [Flutter desktop] 中的 RawKeyEvent 错误字符

RawKeyEvent wrong characters in Windows10 [Flutter desktop]

我正在 Flutter Desktop 项目 (Windows 10) 中测试 RawKeyboardListener

事件工作正常,但我收到错误的键标签,如下所示:

这是一个 "keyboard layout" 问题吗,比如应用程序是否期待来自具有不同键位的 android 键盘的事件(正如您在我收到的 .gif 和 "Unknown Android key code")? 我该如何解决?

此外,如果我打印 event.isControlPressed 它总是 return false 即使我正在按下它。

这是我正在使用的代码:

import 'dart:io';

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

void main() {
  // See https://github.com/flutter/flutter/wiki/Desktop-shells#target-platform-override
  if (!kIsWeb && (Platform.isLinux || Platform.isWindows)) {
    debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia;
  }
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: RawKeyboardListener(
          child: TextField(),
          focusNode: FocusNode(),
          onKey: (event) async {
            if (event.runtimeType == RawKeyDownEvent) {
              print(
                  'id: ${event.logicalKey.keyId}, label: ${event.logicalKey.keyLabel} debugName: ${event.logicalKey.debugName}');
            }
          },
        ),
      ),
    );
  }
}

那是 a bug。您无法在应用程序级别修复它。

在修复之前,您唯一能做的就是完全根据键代码而不是逻辑键来编写键处理。