Добавление курсора с помощью автозаполнения пакета TextField с флаттером - PullRequest
0 голосов
/ 30 апреля 2020

В настоящее время я использую пакет автозаполнения TextField внутри панели приложения моего приложения Flutter (переключаемый с помощью значка увеличительного стекла) для создания панели поиска. Панель поиска находит данные в файле json. Это мой код для строки поиска:

_searchTextField = AutoCompleteTextField<Fruit>(
  controller: _searchBarController,
  decoration: InputDecoration(
    hintText: 'Find your fruit here...',
    border: InputBorder.none,
    fillColor: Colors.white,
    contentPadding: EdgeInsets.symmetric(horizontal: 10.0, vertical: 10.0),
    filled: true,
  ),
  itemBuilder: (context, item) {
    return Padding(
      padding: EdgeInsets.only(
        top: 5.0,
        left: 10.0,
        right: 10.0,
        bottom: 5.0,
      ),
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
          Text(
            item.name,
            style: kSearchBarTextStyle,
          ),
          SizedBox(height: 2.0),
          Row(
            children: <Widget>[
              Text(
                item.variety,
                style: kSectionSubtitleTextStyle,
              ),
              SizedBox(width: 10.0),
              Text(
                item.country,
                style: kSectionSubtitleTextStyle,
              ),
            ],
          ),
          SizedBox(height: 2.0),
          Row(
            children: <Widget>[
              Text(
                item.colour,
                style: kSectionSubtitleTextStyle,
              ),
            ],
          ),
        ],
      ),
    );
  },
  itemFilter: (item, query) {
    return item.searchTerm.toLowerCase().contains(query.toLowerCase());
  },
  itemSorter: (a, b) {
    return a.searchTerm.compareTo(b.searchTerm);
  },
  itemSubmitted: (item) {
    setState(() {
      _searchTextField.textField.controller.text = item.name;
      country = item.country;
      colour = item.colour;
      name = item.name;
      variety = item.variety;
    });
  },
  key: key,
  suggestions: FruitsViewModel.fruits,
  clearOnSubmit: false,
);

Моя проблема в том, что этот пакет, кажется, не позволяет мне добавлять курсор, как это делает стандартный TextField. В идеале я хотел бы иметь возможность добавить его и контролировать его размер и стиль. В данный момент, поскольку курсор отсутствует, невозможно узнать, может ли пользователь начать поиск или нет. Кто-нибудь знает, как добавить курсор с этим пакетом? Или может предложить другой пакет, который ведет себя точно так же, но имеет курсор? Спасибо.

...