0

我正在RawKeyboardListener一个Flutter Desktop项目中进行测试(Windows 10)。

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

在此处输入图像描述

是否是“键盘布局”问题,例如应用程序是否期望来自具有不同键位置的 android 键盘的事件(如您在我收到的 .gif 和“未知的 Android 键码”中所见)?我该如何解决?

此外,如果我打印event.isControlPressed它总是返回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}');
            }
          },
        ),
      ),
    );
  }
}
4

1 回答 1

0

那是一个错误。在应用程序级别您无法修复它。

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

于 2020-03-29T15:32:54.340 回答