【问题标题】:RawKeyEvent wrong characters in Windows10 [Flutter desktop]Windows10 [Flutter 桌面] RawKeyEvent 错误字符
【发布时间】:2020-06-26 03:40:37
【问题描述】:

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

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

这是否是“键盘布局”问题,例如应用程序是否期望来自具有不同键位置的 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}');
            }
          },
        ),
      ),
    );
  }
}

【问题讨论】:

    标签: flutter keyboard-events flutter-desktop


    【解决方案1】:

    那是a bug。您无法在应用程序级别进行任何修复。

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

    【讨论】:

      猜你喜欢
      • 2022-10-09
      • 2022-11-21
      • 2021-11-05
      • 2018-07-21
      • 2020-02-26
      • 1970-01-01
      • 1970-01-01
      • 2016-11-19
      • 1970-01-01
      相关资源
      最近更新 更多