我在处理这个问题时非常困难。我调用了一个异步函数,该函数将从SQLite获取一些信息,但我似乎无法获取。它只是呈现一个空白屏幕,在其中应该是列表视图。
List allItems = new List();
Future<void> pegaDados() async{
var itens = await geraCardapio();
for (var i = 0; i < itens.length; i++) {
print((itens[i].toMap()));
allItems.add(itens[i].toMap());
}
}
print(pegaDados());
return ListView.builder(
itemCount: allItems.length,itemBuilder: (context,index) {
return ListTile(
leading: Image.asset("assets/"+ allItems[index]['imagem'],fit: BoxFit.contain,),title: Text(allItems[index]['pedido']),trailing: Text(allItems[index]['valor']),);
},);
非常感谢您。
由于两个人都回答了这个问题,我设法得到了解决方案(使用这两种方法我都得到了这个小科学怪人)
Future<dynamic> pegaDados() async{
var allItems = await geraCardapio();
return allItems.map((allItems) => allItems.toMap());
}
return FutureBuilder(
future: pegaDados(),builder: (context,snapshot){
if(snapshot.connectionState == ConnectionState.done){
print(snapshot.data);
var objeto = [];
for (var i in snapshot.data) {
objeto.add(i);
}
print(objeto);
return Container(
child: ListView.builder(
itemCount: objeto.length,index) {
return ListTile(
leading: Image.asset("assets/"+ objeto[index]['imagem'],title: Text(objeto[index]['pedido']),trailing: Text(objeto[index]['valor'].toString()),);
},);
}
else if(snapshot.hasError){
throw snapshot.error;
}
else{
return Center(child: CircularProgressIndicator());
}
},);