В настоящее время я использую пакет автозаполнения 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. В идеале я хотел бы иметь возможность добавить его и контролировать его размер и стиль. В данный момент, поскольку курсор отсутствует, невозможно узнать, может ли пользователь начать поиск или нет. Кто-нибудь знает, как добавить курсор с этим пакетом? Или может предложить другой пакет, который ведет себя точно так же, но имеет курсор? Спасибо.