Как слушать изменение фокуса в flutter?

в Android, мы можем назвать setOnFocusChangeListener(), сделайте что-нибудь в onFocusChanged() метод, но flutter не провайдер onFocus() интерфейс как onTap() в GestureDetector или onKey() в RawKeyboardListener.

Я прочитал Flutter api о фокусе,https://docs.flutter.io/flutter/widgets/FocusManager-class.html но я не могу найти способ реализовать свою просьбу, кто-нибудь может мне помочь?

2 ответов


Я полагаю, вы ищете FocusNode класса. Использовать addListener метод добавления функции прослушивателя, которая прослушивает изменение фокуса.


вот простой рабочий пример FocusNode использование текстового поля.

Widget build(BuildContext context) {  
    ...  
    var _focusNode = new FocusNode();
    var _textField = new TextField(
       focusNode: _focusNode
    );
    _focusNode.addListener(() {
       if (!_focusNode.hasFocus) {
          // TextField has lost focus
       }
    });
    ...
}