我有一个以未来形式出现的清单
Future<List<String>> _future;
List<String> showList = [];
String showCode;
Future<List<String>> getCode() async {
final show = await SharedPreferences.getInstance();
setState(() {
showList = show.getStringList('companyName');
});
print('here ${showList.toString()}');
return showList;
}
当我打印时,我的控制台会像这样输出
[朋友,磨砂]
我正在尝试使用 Futurebuilder 向用户显示此列表,但我的值未显示。我将它添加为容器中的一列,以底部为中心。但只有 CircularProgressIndicator() 部分可见任何想法吗?
? Container(
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
children: [
Column(
children: [
IconButton(
icon: Icon(Icons.close),
onPressed: () {
Navigator.pushNamed(
context, ShowScreen.routeName);
}),
Text(
'Please Select Show',
],
),
FutureBuilder(
future: _future,
builder: (context,
AsyncSnapshot<List<String>> snapshot) {
if (snapshot.hasData) {
return ListView.builder(
itemCount: snapshot.data.length,
itemBuilder: (context, index) {
return Card(
elevation: 6.0,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
Text(snapshot.data[index]),
],
),
));
});
} else{
return CircularProgressIndicator();
}
}),
],
),
),
)
看起来像这样,但它不显示项目
我这样设置我的数据
else{
_showData = !_showData;
shows.forEach((element) {
showCode = element.showName;
showList.add(element.showName);
show.setStringList(
'showName', showList);
getCode();
})