【发布时间】:2020-10-15 19:05:43
【问题描述】:
所以我一直试图弄清楚如何让 listview.builder() 在 Flutter 中工作,但无济于事。在这里,我有一个字典列表,每个字典都有 3 个键。如果您查看 Homepage() 小部件,我将返回一个 Todo() 小部件,它是一个带有 3 个参数的小部件,每个参数用于一个文本。由于某种原因,该小部件未显示在我的应用程序上,我尝试将字典值用于 Todo 小部件上的参数,因为这似乎是明智之举,但不幸的是它不起作用。希望有经验的 Flutter 开发者能帮帮我,谢谢!
代码:
List todoData = [
{
'todo': 'Pick up milk',
'time': 'Time: 10:00AM',
'urgency': 'Urgency: Important',
},
{
'todo': 'Pick up milk',
'time': 'Time: 10:00AM',
'urgency': 'Urgency: Important',
},
{
'todo': 'Pick up milk',
'time': 'Time: 10:00AM',
'urgency': 'Urgency: Important',
},
{
'todo': 'Pick up milk',
'time': 'Time: 10:00AM',
'urgency': 'Urgency: Important',
},
{
'todo': 'Pick up milk',
'time': 'Time: 10:00AM',
'urgency': 'Urgency: Important',
},
];
Widget HomePage() {
var index = 0;
return Center(
child: ListView(
padding: EdgeInsets.all(10),
children: <Widget>[
ListView.builder(
itemCount: todoData.length,
itemBuilder: (BuildContext context, index) {
return Todo(
'${todoData[index]['todo']}',
'${todoData[index]['time']}',
'${todoData[index]['urgency']}',
);
},
)
],
),
);
}
Widget Todo(String titletext, String time, String urgency) {
return Padding(
padding: EdgeInsets.all(20),
child: Container(
height: 150,
decoration: BoxDecoration(
color: Colors.blue, borderRadius: BorderRadius.circular(30)),
child: Padding(
padding: EdgeInsets.all(10),
child: Stack(
children: <Widget>[
TitleText("Pick up Milk"),
Positioned(top: 40, child: BodyText("Time: 10:00AM")),
Positioned(top: 70, child: BodyText("Urgency: Important")),
],
))));
}
【问题讨论】: