flutter - RawKeyboardListener 未在 Flutter web 中触发任何事件

标签 flutter keyboard widget listener

这是一些小部件中的简单代码。 RawKeyboardListeneronKey没有触发!那么问题是为什么?这是一个错误吗?

Container(
  child: StreamProvider<Item>.value(
    value: stream
    child: Consumer<Item>(
      builder: (_, item, __) {
        return RawKeyboardListener(
          focusNode: focusNode,
          onKey: (event) {
            print(event); // NOT PRINTED!!
          }
          child: TextField(
            controller: controller,
            ...
          ),
        );
      }
    ),
  ),
),

附言 flutter 是 1.17.0-3.2pre , Dart 是 2.8.0-dev.20.10

最佳答案

我认为您需要将此行添加到构建器方法的顶部:

FocusScope.of(context).requestFocus(focusNode);
您的代码应如下所示:
Container(
  child: StreamProvider<Item>.value(
    value: stream
    child: Consumer<Item>(
      builder: (_, item, __) {
        FocusScope.of(context).requestFocus(focusNode); // Add this line

        return RawKeyboardListener(
          focusNode: focusNode,
          onKey: (event) {
            print(event); // NOT PRINTED!!
          }
          child: TextField(
            controller: controller,
            ...
          ),
        );
      }
    ),
  ),
),

关于flutter - RawKeyboardListener 未在 Flutter web 中触发任何事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61609806/

相关文章:

flutter - 如何在GridView中每6个不同的项目渲染一个图像?

IOS:UITextField+UITableView inside UIScrollView

macos - 什么是 OS X 上包含的终端程序的好替代品?

python - matplotlib.widgets 按钮在类中不起作用

flutter - 将信息传递给方法或构造函数 flutter

android - 如何在 flutter 中禁用 RadioListTile 小部件

Android widget 不同的纵向和横向方向

widget - LayerList 微件中可见的单个图层 (ArcGIS JavaScript)

bash - WSL 和 bash 命令

Javascript键盘事件更改标记文本