我想添加一个带有元素的ListView。我在另一页上执行此操作,但是由于某种原因,它现在没有出现。
Widget comentCard(comentario) {
return Container(
width: 300,
padding: EdgeInsets.symmetric(horizontal: 3),
child: Card(
elevation: 1,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(
Radius.circular(30),
),
),
child: Text('Some Text'),
),
);
}
Widget comentarios() {
return ListView(
children: widget.model.cardComentarios.map((element) {
for (var i = 0; i < widget.model.cardComentarios.length; i++) {
return comentCard(element);
}
}).toList());
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
automaticallyImplyLeading: true,
title: Text('Title'),
actions: [], // agregar boton a la derecha
),
body: Container(child: comentarios()),
);
}
如果我单击另一个按钮,有时会出现,但是我希望在页面加载时出现。
谢谢!
答案 0 :(得分:0)
您的comentarios
方法错误。 map
已经为您进行了迭代,因此您要迭代两次。
假设map
包含类型A的列表,并将其映射到类型B的另一个列表。请检查示例:
var list = [1, 2, 3].map((int number) => number.toString());
print(list); // Output: ['1', '2', '3']
您的comentarios
方法必须是以下方法之一:
Widget comentarios() {
List comentWidgetList;
for (var i = 0; i < widget.model.cardComentarios.length; i++) {
var comentCard = comentCard(widget.model.cardComentarios[i]);
comentWidgetList.add(comentCard);
}
return ListView(
children: comentWidgetList,
);
}
Widget comentarios() {
return ListView(
children: widget.model.cardComentarios.map((element) {
return comentCard(element);
}).toList(),
);
}