gpt4 book ai didi

flutter - 尝试显示项目列表时,显示“' is not a subtype of type ' List

转载 作者:行者123 更新时间:2023-12-03 03:39:44 24 4
gpt4 key购买 nike

我创建了一个日期列表。我想将其呈现在小部件列表中,但出现错误:类型“列表”不是类型“列表”的子类型。有没有更好的方法来显示日期列表?

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
final title = 'Basic List';

var start = DateTime.now();
var end = DateTime(2021, 12, 31);
var list = [];

while (start.isBefore(end)) {
list.add(start);
start = start.add(Duration(days: 1));
}


return MaterialApp(
title: title,
home: Scaffold(
appBar: AppBar(
title: Text(title),
),
body: Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: getDaysInWeek(),
),
),
),
);
}
}

List<Widget> getDaysInWeek() {
var start = DateTime.now();
var end = DateTime(2021, 12, 31);
var list = [];
while (start.isBefore(end)) {
list.add(start);
start = start.add(Duration(days: 1));
}

return list.toList();
}

最佳答案

您需要将List<DateTime映射到List<Widget。直觉上这是必需的,因为您不能在Flutter中显示DateTime,而只能显示Widget!

可能看起来像这样:

List<Widget> get daysInWeek {
final end = DateTime(2021, 12, 31), list = <DateTime>[];
DateTime start = DateTime.now();

while (start.isBefore(end)) {
list.add(start);
start = start.add(const Duration(days: 1));
}

return list.map((DateTime time) {
return Text(time.toString());
}).toList();
}

您会注意到两件事:
  • 我将DateTime对象映射到Text对象和 Text is a widget,它们将String显示为文本。
  • 在某些地方,语法更加有些不同,因此更加惯用了Dart代码。我相信您会直观地理解此语法。
  • 关于flutter - 尝试显示项目列表时,显示“<List <dynamic >' is not a subtype of type ' List <Widget>”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57963096/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com