Как вызвать onSubmitted на флаттер для веб TextField - PullRequest
1 голос
/ 10 октября 2019

У меня есть небольшое приложение для веб-приложений, и я показываю TextField.

Теперь мне нужен обратный вызов, например onSubmitted, когда пользователь покидает TextField (потеря фокуса) или нажимает клавишу Enter. Прямо сейчас я не могу сделать никакого обратного вызова вообще.

TextField(
  decoration: InputDecoration(
    labelText: 'Name',
  ),
  controller: TextEditingController(text: event.name),
  onEditingComplete: () { print("editing complete"); },
  onSubmitted: (String value) { print("submitted\n"); },
  maxLines: 1,
),

1 Ответ

0 голосов
/ 10 октября 2019

Кажется, это проблема: [web]: TextField onSubmitted не запускается при нажатии enter

Это обходной путь, упомянутый в ссылке:

    body: RawKeyboardListener(
      focusNode: focusNode,
      onKey: (event) {
        if (event is RawKeyUpEvent && event.data is RawKeyEventDataAndroid) {
          var data = event.data as RawKeyEventDataAndroid;
          if (data.keyCode == 13) {
            debugPrint('onSubmitted');
          }
        }
      },
      child: TextField(),
    ),
...