List 获取映射中存在的列表的长度<;字符串,列表<;对象>&燃气轮机;飘飘然
因此,我正在绘制一幅具有以下结构的地图:List 获取映射中存在的列表的长度<;字符串,列表<;对象>&燃气轮机;飘飘然,list,flutter,listview,dart,List,Flutter,Listview,Dart,因此,我正在绘制一幅具有以下结构的地图: Map<String, List<Video>> mapName; 现在列表中确实有9个视频,但我不能在我的listview itemcount中使用它,因为它需要int类型的数据。如果地图的键字符串包含多个视频列表,则可以使用以下代码获得所有长度: Map<String, List<Video>> mapName = { 'video1': [Video(),Video()], 'video2'
Map<String, List<Video>> mapName;
现在列表中确实有9个视频,但我不能在我的listview itemcount中使用它,因为它需要int类型的数据。如果地图的键字符串包含多个视频列表,则可以使用以下代码获得所有长度:
Map<String, List<Video>> mapName = {
'video1': [Video(),Video()],
'video2': [Video()],
'video3': [Video(),Video(),Video()],
}; //Init
int total = 0;
mapName.keys.forEach((key){
List<Video> video = mapName[key];
int length = video.length;
print('$key: $length');
total += length;
});
print('total: $total');
Map映射名={
“video1:[Video(),Video()],
“video2”:[Video()],
“video3”:[Video(),Video(),Video()],
}; //初始化
int-total=0;
mapName.keys.forEach((键){
列表视频=地图名称[键];
int length=video.length;
打印(“$key:$length”);
总长度+=长度;
});
打印('total:$total');
颤振示例:
import 'package:flutter/material.dart';
final Color darkBlue = Color.fromARGB(255, 18, 32, 47);
void main() {
runApp(MyApp());
}
class Video {
final String name;
final String url;
final bool isDone;
Video(this.name, this.url, this.isDone);
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
Map<String, List<Video>> mapName = {
'video1': [
Video('Bunny', 'http://????', false),
Video('Bunny10', 'http://????', true),
],
'video2': [
Video('Bunny2', 'http://????', false),
],
'video3': [
Video('BunnyX', 'http://????', false),
Video('Bunny12', 'http://????', true),
Video('BunnyZZ', 'http://????', false),
],
}; //Init
List<Video> mVideos = [];
mapName.values.forEach((videos) {
videos.forEach((video) {
mVideos.add(video);
});
});
return MaterialApp(
theme: ThemeData.dark().copyWith(scaffoldBackgroundColor: darkBlue),
debugShowCheckedModeBanner: false,
home: Scaffold(
body: ListView.builder(
itemCount: mVideos.length,
itemBuilder: (context, index) {
Video video = mVideos[index];
String name = video.name;
String url = video.url;
bool isDone = video.isDone;
return ListTile(
tileColor: isDone ? Colors.green : null,
title: Text(name),
subtitle: Text(url),
);
},
),
),
);
}
}
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Text('Hello, World!', style: Theme.of(context).textTheme.headline4);
}
}
导入“包装:颤振/材料.省道”;
最终颜色深蓝色=颜色。来自argb(255,18,32,47);
void main(){
runApp(MyApp());
}
课堂录像{
最后的字符串名;
最终字符串url;
最终布尔伊斯通;
视频(this.name、this.url、this.isDone);
}
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
地图名称={
“视频1”:[
视频('Bunny','http://?',false),
视频('Bunny10','http://?',true),
],
“视频2”:[
视频('Bunny2','http://',false),
],
“视频3”:[
视频('BunnyX','http://?',false),
视频('Bunny12','http://',true),
视频('bunnyz','http://',false),
],
};//初始化
列出mVideos=[];
mapName.values.forEach((视频){
视频。forEach((视频){
mVideos.add(视频);
});
});
返回材料PP(
主题:ThemeData.dark().copyWith(脚手架背景颜色:深蓝色),
debugShowCheckedModeBanner:false,
家:脚手架(
正文:ListView.builder(
itemCount:mVideos.length,
itemBuilder:(上下文,索引){
视频=mVideos[索引];
字符串名称=video.name;
字符串url=video.url;
bool isDone=video.isDone;
返回列表块(
tileColor:IsOne?颜色。绿色:空,
标题:文本(名称),
字幕:文本(url),
);
},
),
),
);
}
}
类MyWidget扩展了无状态Widget{
@凌驾
小部件构建(构建上下文){
返回文本('Hello,World!',样式:Theme.of(context.textTheme.headline4);
}
}
您希望通过此打印实现什么(videoList.values.map((list)=>list.length));答案中有颤振的例子
import 'package:flutter/material.dart';
final Color darkBlue = Color.fromARGB(255, 18, 32, 47);
void main() {
runApp(MyApp());
}
class Video {
final String name;
final String url;
final bool isDone;
Video(this.name, this.url, this.isDone);
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
Map<String, List<Video>> mapName = {
'video1': [
Video('Bunny', 'http://????', false),
Video('Bunny10', 'http://????', true),
],
'video2': [
Video('Bunny2', 'http://????', false),
],
'video3': [
Video('BunnyX', 'http://????', false),
Video('Bunny12', 'http://????', true),
Video('BunnyZZ', 'http://????', false),
],
}; //Init
List<Video> mVideos = [];
mapName.values.forEach((videos) {
videos.forEach((video) {
mVideos.add(video);
});
});
return MaterialApp(
theme: ThemeData.dark().copyWith(scaffoldBackgroundColor: darkBlue),
debugShowCheckedModeBanner: false,
home: Scaffold(
body: ListView.builder(
itemCount: mVideos.length,
itemBuilder: (context, index) {
Video video = mVideos[index];
String name = video.name;
String url = video.url;
bool isDone = video.isDone;
return ListTile(
tileColor: isDone ? Colors.green : null,
title: Text(name),
subtitle: Text(url),
);
},
),
),
);
}
}
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Text('Hello, World!', style: Theme.of(context).textTheme.headline4);
}
}