textFieldWrap method

dynamic textFieldWrap(
  1. Widget child
)

Implementation

textFieldWrap(Widget child){
  return Stack(children: [
    Opacity(
      opacity: 0.0, // 完全透明
      child: IgnorePointer(
        ignoring: false, // 仍然允许接收键盘输入
        child: TextField(
          focusNode: textfieldFocus,
          controller: controller,
          onChanged: (String text){
              switch(text){
                //// ASDW
                case 'a':
                case 'A':
                  if(setAWSD.$1){
                    textDispatchCall(PadActionEvent.left, setAWSD.$2);
                    break;
                  }
                case 's':
                case 'S':
                  if(setAWSD.$1){
                    textDispatchCall(PadActionEvent.down, setAWSD.$2);
                    break;
                  }
                case 'd':
                case 'D':
                  if(setAWSD.$1){
                    textDispatchCall(PadActionEvent.right, setAWSD.$2);
                    break;
                  }
                case 'w':
                case 'W':
                  if(setAWSD.$1){
                    textDispatchCall(PadActionEvent.up, setAWSD.$2);
                    break;
                  }
                case 'q':
                case 'Q':
                  if(setAWSD.$1){
                    textDispatchCall(PadActionEvent.prevLeft, setAWSD.$2);
                    break;
                  }
                case 'e':
                case 'E':
                  if(setAWSD.$1){
                    textDispatchCall(PadActionEvent.nextRight, setAWSD.$2);
                    break;
                  }
                /// JKLI
                case 'j':
                case 'J':
                  if(setJIKL.$1){
                    textDispatchCall(PadActionEvent.left, setJIKL.$2);
                    break;
                  }
                case 'k':
                case 'K':
                  if(setJIKL.$1){
                    textDispatchCall(PadActionEvent.down, setJIKL.$2);
                    break;
                  }
                case 'l':
                case 'L':
                  if(setJIKL.$1){
                    textDispatchCall(PadActionEvent.right, setJIKL.$2);
                    break;
                  }
                case 'i':
                case 'I':
                  if(setJIKL.$1){
                    textDispatchCall(PadActionEvent.up, setJIKL.$2);
                    break;
                  }
                case 'u':
                case 'U':
                  if(setJIKL.$1){
                    textDispatchCall(PadActionEvent.prevLeft, setJIKL.$2);
                    break;
                  }
                case 'o':
                case 'O':
                  if(setJIKL.$1){
                    textDispatchCall(PadActionEvent.nextRight, setJIKL.$2);
                    break;
                  }
                default:
                  onPadEvent?.call(PadActionEvent.raw, 'text:$text');
              }
              controller.text = '';
            },))),
    child,
    ...floatings ?? []
  ]);
}