Flutter GestureDetector пропускает onTap, когда другое TextField имеет фокус - PullRequest
0 голосов
/ 21 июня 2020

Hi во Flutter У меня есть TextFormField и отдельно GestureDetector. Проблема заключается в том, что TextFormField имеет фокус (пользователь печатает), а затем пользователь нажимает на GestureDetector, onTap не вызывается, поэтому пользователь должен дважды щелкнуть один раз, чтобы удалить фокус из TextFormField и еще раз, чтобы активировать GestureDetector, что раздражает для пользователя. Какие-нибудь советы, пожалуйста, по обнаружению касания, даже если TextFormField имеет фокус? Спасибо!

Ответы [ 3 ]

0 голосов
/ 21 июня 2020

Ваш GestureDetector только теряет фокус? если это так, попробуйте обернуть свой каркас детектором жестов и добавить onTap, как приведенный ниже код

      onTap: () {
FocusScopeNode currentFocus = FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) {
  currentFocus.unfocus();
}

}

Он расфокусирует TextFormField, как только вы коснетесь в любом месте каркаса

0 голосов
/ 22 июня 2020

Всем спасибо! На самом деле это была моя ошибка, в TextFormField был слушатель, который запускал setState и заглушал ontap.

0 голосов
/ 21 июня 2020

Думаю, вы можете добавить

FocusScope.of(context).unfocus();

, чтобы убрать фокус с текстового поля в 'onEditingComplete' или 'onTap'.

Надеюсь, это поможет!

...