Flutter 类型';MappedListIterable<;字符串,Widget>';不是类型为';列表<;Widget>';

Flutter 类型';MappedListIterable<;字符串,Widget>';不是类型为';列表<;Widget>';,flutter,dart,Flutter,Dart,在这里,我想分别在自己的容器中显示Iterable列表中的每个元素,并将它们包装起来,以便它们均匀地分布在屏幕上,但这给了我一个错误,Iterable不是列表的子类型。我甚至在映射它之前将它转换为列表。有人能帮忙吗 import 'package:flutter/material.dart'; class Time extends StatefulWidget { @override _TimeState createState() => _TimeState(); } cla

在这里,我想分别在自己的容器中显示Iterable列表中的每个元素,并将它们包装起来,以便它们均匀地分布在屏幕上,但这给了我一个错误,Iterable不是列表的子类型。我甚至在映射它之前将它转换为列表。有人能帮忙吗

import 'package:flutter/material.dart';

class Time extends StatefulWidget {
  @override
  _TimeState createState() => _TimeState();
}

class _TimeState extends State<Time> {
  String time = "Press Button to see time";
  @override
  Widget build(BuildContext context) {
    TimeOfDay startTime = TimeOfDay(hour: 01, minute: 00);
    final endTime = TimeOfDay(hour: 23, minute: 59);
    final step = Duration(minutes: 5);

    Iterable<TimeOfDay> getTimes(
        TimeOfDay startTime, TimeOfDay endTime, Duration step) sync* {
      var hour = startTime.hour;
      var minute = startTime.minute;

      do {
        yield TimeOfDay(hour: hour, minute: minute);
        minute += step.inMinutes;
        while (minute >= 60) {
          minute -= 60;
          hour++;
        }
      } while (hour < endTime.hour ||
          (hour == endTime.hour && minute <= endTime.minute));
    }

    final times = getTimes(startTime, endTime, step)
        .map((tod) => tod.format(context))
        .toList();

    return Scaffold(
      body: SafeArea(
        child: Wrap(
          direction: Axis.horizontal,
          children: times.map<Widget>(
            (t) => Container(
              margin: EdgeInsets.all(10.0),
              decoration: BoxDecoration(
                border: Border.all(
                  color: Colors.deepOrange,
                  width: 1,
                ),
                borderRadius: BorderRadius.circular(
                  10.0,
                ),
              ),
              padding: EdgeInsets.all(10.0),
              child: Text(t),
            ),
          ),
        ),
      ),
    );
  }
}
导入“包装:颤振/材料.省道”;
类时间扩展StatefulWidget{
@凌驾
_TimeState createState();
}
类_TimeState扩展状态{
String time=“按下按钮查看时间”;
@凌驾
小部件构建(构建上下文){
TimeOfDay startTime=一天的时间(小时:01,分钟:00);
最终结束时间=一天的时间(小时:23,分钟:59);
最后一步=持续时间(分钟:5);
不可分时间(
TimeOfDay开始时间、TimeOfDay结束时间、持续时间步长)同步*{
var hour=开始时间.hour;
var minute=startTime.minute;
做{
产量时间(小时:小时,分钟:分钟);
分钟+=步长,单位为分钟;
而(分钟>=60){
分钟-=60;
小时++;
}
}while(小时容器(
保证金:所有边缘套(10.0),
装饰:盒子装饰(
边界:边界(
颜色:颜色。深橙色,
宽度:1,
),
borderRadius:borderRadius.circular(
10.0,
),
),
填充:所有边缘设置(10.0),
子:文本(t),
),
),
),
),
);
}
}
调试控制台显示了这一点

您需要像这样添加.toList()函数

return Scaffold(
  body: SafeArea(
    child: Wrap(
      direction: Axis.horizontal,
      children: times
          .map<Widget>(
            (t) => Container(
              margin: EdgeInsets.all(10.0),
              decoration: BoxDecoration(
                border: Border.all(
                  color: Colors.deepOrange,
                  width: 1,
                ),
                borderRadius: BorderRadius.circular(
                  10.0,
                ),
              ),
              padding: EdgeInsets.all(10.0),
              child: Text(t),
            ),
          )
          .toList(),
    ),
  ),
);
返回脚手架(
正文:安全区(
孩子:包裹(
方向:水平轴,
儿童:时代
.地图(
(t) =>容器(
保证金:所有边缘套(10.0),
装饰:盒子装饰(
边界:边界(
颜色:颜色。深橙色,
宽度:1,
),
borderRadius:borderRadius.circular(
10.0,
),
),
填充:所有边缘设置(10.0),
子:文本(t),
),
)
.toList(),
),
),
);
您需要像这样添加.toList()函数

return Scaffold(
  body: SafeArea(
    child: Wrap(
      direction: Axis.horizontal,
      children: times
          .map<Widget>(
            (t) => Container(
              margin: EdgeInsets.all(10.0),
              decoration: BoxDecoration(
                border: Border.all(
                  color: Colors.deepOrange,
                  width: 1,
                ),
                borderRadius: BorderRadius.circular(
                  10.0,
                ),
              ),
              padding: EdgeInsets.all(10.0),
              child: Text(t),
            ),
          )
          .toList(),
    ),
  ),
);
返回脚手架(
正文:安全区(
孩子:包裹(
方向:水平轴,
儿童:时代
.地图(
(t) =>容器(
保证金:所有边缘套(10.0),
装饰:盒子装饰(
边界:边界(
颜色:颜色。深橙色,
宽度:1,
),
borderRadius:borderRadius.circular(
10.0,
),
),
填充:所有边缘设置(10.0),
子:文本(t),
),
)
.toList(),
),
),
);

你能指出这是哪一行给出了错误吗?你可以显示出你的确切错误getting@Sisir我添加了调试控制台image@Sisir我找到了解决方案。感谢您的尝试:)你能指出这是哪一条给出错误的线吗?你能显示出你的准确错误getting@Sisir我添加了调试控制台image@Sisir我得到了答案。谢谢你的尝试:)没关系,很好。谢谢你,我再次接受你的答案。谢谢你。不客气。没关系,很好。谢谢你,我接受你的答案再次感谢你,不客气。