Текстовое поле typeAhead в флаттерной сети - PullRequest
0 голосов
/ 28 апреля 2020

Я использую текстовое поле typeAhead для автозаполнения, но функция onSuggestionSelected не работает. Я использую флаттер. Выбор не сделан, и listView показывает, что я нахожусь над элементом над тем, который на самом деле завис.

Ниже находится диалоговое окно, в этом случае указатель мыши на самом деле находится ниже 'FIN' в listView. Я использую поле typeAhead в диалоговом окне.

Это код ниже.

TypeAheadFormField(
      //initialValue: 'bleh',
      textFieldConfiguration: TextFieldConfiguration(
          controller: _typeAheadController, //this.
          decoration: InputDecoration(
              hintText: 'Programme(required)' //label
              )),
      suggestionsCallback: (pattern) {
        return programme
            .where((String dc) => dc
                .toLowerCase()
                .contains(pattern.toLowerCase()))
            .toList(); //|| dc.toLowerCase().contains(other.toLowerCase())).toList();
      },
      itemBuilder: (context, String suggestion) {
        return ListTile(
          title: Text(suggestion),
        );
      },
      transitionBuilder:
          (context, suggestionsBox, controller) {
        return suggestionsBox;
      },
      onSuggestionSelected: (String suggestion) {
        _typeAheadController.text = suggestion; //this
        print(suggestion + ' selected bith');
      },
      validator: (value) {
        if (value.isEmpty ||
            programme.indexOf(value) == -1) {
          return 'Please select a course offered in the university you selected!';
        }
      },
      onSaved: (value) => this._selectedCity =
          value, //<--------- upload value
    )

'program' - это список строк, возвращаемых, в которых строка 'd c' нашел. «печать (предложение +« выбранный Bith »); ' не печатает ничего, чтобы показать, что я вообще никогда не запускал onSelection. Кто-нибудь знает работу вокруг? спасибо.

Диалог:

Dialog image

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...