【问题标题】:Flutter: Jump out of "Focus" Widget on key pressedFlutter:在按下按键时跳出“Focus”Widget
【发布时间】:2022-12-18 10:35:07
【问题描述】:

我想用箭头键遍历 Focus-Group,以便选择下一个/上一个 focusNode。在 tab/shift+tab 上,我希望焦点跳出那个焦点组,到我的焦点组之外的下一个/上一个焦点节点:

Focus(
  onKey: (focusNode, event) {
     if (event.runtimeType == RawKeyDownEvent) {
      if (event.logicalKey == LogicalKeyboardKey.arrowDown) {
          focusNode.nextFocus();
          return KeyEventResult.handled;

      } else if (event.logicalKey == LogicalKeyboardKey.arrowUp) {
          focusNode.previousFocus();
          return KeyEventResult.handled;

      } else if (event.logicalKey == LogicalKeyboardKey.tab) {
          if(RawKeyboard.instance.keysPressed.contains(LogicalKeyboardKey.shiftLeft))){ 

            // TODO: JUMP FOCUS OUT OF THIS FOCUS WIDGET 
            // TO THE FOCUS NODE ABOVE/BEFORE THIS FOCUS WIDGET

          } else {

            // TODO: JUMP FOCUS OUT OF THIS FOCUS WIDGET 
            // TO THE FOCUS NODE BELOW/AFTER THIS FOCUS WIDGET

          }
          return KeyEventResult.handled;
      }
     }
     return KeyEventResult.ignored;
  },
  child: ...

【问题讨论】:

    标签: flutter focus


    【解决方案1】:
    Try  FocusManager.of(context).unfocus;
    

    【讨论】:

    • 这会将焦点带到哪个节点?
    • FocusManager 也没有 of 方法。
    • 也许Focus.of(context).unfocus;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多