【发布时间】:2020-08-27 07:19:24
【问题描述】:
这里我试图通过 json 在文本字段中显示所有拼贴名称,但我不知道为什么它没有显示我的调试控制台中显示的 allcollagename 列表数据,但它在 AutoCompleteTextField 中不可见
这是我用来获取拼贴名称数据的 api
var api = 'http://universities.hipolabs.com/search';
这是我的获取数据功能。
fetchData() async {
try {
var res = await http.get(api);
var data = jsonDecode(res.body);
List<CollageName> collageNameList = data.map<CollageName>((sup) {
return CollageName.fromJson(sup);
}).toList();
allCollageList = collageNameList;
return allCollageList;
} catch (err) {
return Future.error("Connection Error Restart App");
}
}
我在 initState 中调用这个获取数据函数 这是我的 AutoCompleteTextField 代码
Container(
child: AutoCompleteTextField(
key: key,
controller: _suggetionTextFieldController,
suggestions: allCollageList,
clearOnSubmit: false,
style: TextStyle(fontSize: 10),
itemFilter: (item, query) {
return item.name
.toLowerCase()
.startsWith(query.toLowerCase());
},
itemSorter: (a, b) {
return a.name.compareTo(b.name);
},
itemSubmitted: (item) {
_suggetionTextFieldController.text = item.name;
},
itemBuilder: (context, item) {
return Container(
child: Text(item.name),
);
})),
拼贴名称(模型类)
class CollageName {
String country;
String stateProvince;
String name;
List<dynamic> webPages;
List<dynamic> domains;
String alphaTwoCode;
CollageName(
{this.country,
this.stateProvince,
this.name,
this.webPages,
this.domains,
this.alphaTwoCode});
CollageName.fromJson(Map<String, dynamic> json) {
country = json['country'] ?? "ohh bhai tu fir aa gaya";
stateProvince = json['state-province'];
name = json['name'] ?? "ohh bhai tu fir aa gaya";
webPages = json['web_pages'].cast<String>();
domains = json['domains'].cast<String>();
alphaTwoCode = json['alpha_two_code'] ?? "ohh Bhai";
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['country'] = this.country;
data['state-province'] = this.stateProvince;
data['name'] = this.name;
data['web_pages'] = this.webPages;
data['domains'] = this.domains;
data['alpha_two_code'] = this.alphaTwoCode;
return data;
}
}
初始化状态
@override
void initState() {
super.initState();
fetchData();
print(allCollageList.toString());
}
【问题讨论】:
标签: flutter dart flutter-layout flutter-dependencies