RawKeyEvent неправильные символы в Windows10 [рабочий стол Flutter] - PullRequest
0 голосов
/ 14 марта 2020

Я тестирую RawKeyboardListener в Flutter Desktop проекте (Windows 10).

События работают нормально, но я получаю неправильную метку ключей, как вы можете видеть ниже:

enter image description here

Это проблема «раскладки клавиатуры», как если бы приложение ожидало события от клавиатуры 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}');
            }
          },
        ),
      ),
    );
  }
}

1 Ответ

0 голосов
/ 29 марта 2020

Это ошибка . На уровне вашего приложения вы ничего не можете сделать, чтобы исправить это.

Пока оно не исправлено, единственное, что вы можете сделать, - это написать обработку ключей полностью в терминах кодов ключей, а не логических ключей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...