Flutter 颤振中AutoCompleteTextField中的逗号分隔
我正在使用一个运行良好的代码,并通过发送HTTP GET请求在下拉菜单中给出建议Flutter 颤振中AutoCompleteTextField中的逗号分隔,flutter,dart,Flutter,Dart,我正在使用一个运行良好的代码,并通过发送HTTP GET请求在下拉菜单中给出建议 import 'package:http/http.dart' as http; import 'user.dart'; import 'dart:convert'; import 'package:autocomplete_textfield/autocomplete_textfield.dart'; class AutoCompleteDemo extends StatefulWidget { AutoC
import 'package:http/http.dart' as http;
import 'user.dart';
import 'dart:convert';
import 'package:autocomplete_textfield/autocomplete_textfield.dart';
class AutoCompleteDemo extends StatefulWidget {
AutoCompleteDemo() : super();
final String title = "AutoComplete Demo";
@override
_AutoCompleteDemoState createState() => _AutoCompleteDemoState();
}
class _AutoCompleteDemoState extends State<AutoCompleteDemo> {
AutoCompleteTextField searchTextField;
GlobalKey<AutoCompleteTextFieldState<User>> key = new GlobalKey();
static List<User> users = new List<User>();
bool loading = true;
void getUsers() async {
try {
final response =
await http.get("https://jsonplaceholder.typicode.com/users");
if (response.statusCode == 200) {
users = loadUsers(response.body);
print('Users: ${users.length}');
setState(() {
loading = false;
});
} else {
print("Error getting users.");
}
} catch (e) {
print("Error getting users.");
}
}
static List<User> loadUsers(String jsonString) {
final parsed = json.decode(jsonString).cast<Map<String, dynamic>>();
return parsed.map<User>((json) => User.fromJson(json)).toList();
}
@override
void initState() {
getUsers();
super.initState();
}
Widget row(User user) {
return Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text(
user.name,
style: TextStyle(fontSize: 16.0),
),
SizedBox(
width: 10.0,
),
Text(
user.email,
),
],
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
loading
? CircularProgressIndicator()
: searchTextField = AutoCompleteTextField<User>(
key: key,
clearOnSubmit: false,
suggestions: users,
style: TextStyle(color: Colors.black, fontSize: 16.0),
decoration: InputDecoration(
contentPadding: EdgeInsets.fromLTRB(10.0, 30.0, 10.0, 20.0),
hintText: "Search Name",
hintStyle: TextStyle(color: Colors.black),
),
itemFilter: (item, query) {
return item.name
.toLowerCase()
.startsWith(query.toLowerCase());
},
itemSorter: (a, b) {
return a.name.compareTo(b.name);
},
itemSubmitted: (item) {
setState(() {
searchTextField.textField.controller.text = item.name;
});
},
itemBuilder: (context, item) {
// ui for the autocompelete row
return row(item);
},
),
],
),
);
}
}
import'package:http/http.dart'作为http;
导入“user.dart”;
导入“dart:convert”;
导入“package:autocomplete_textfield/autocomplete_textfield.dart”;
类AutoCompleteDemo扩展StatefulWidget{
AutoCompleteDemo():super();
最终字符串title=“自动完成演示”;
@凌驾
_AutoCompleteDemoState createState()=>\u AutoCompleteDemoState();
}
类_AutoCompleteDemoState扩展状态发布了一条谚语“你可以用它来实现同样的目标”