我想在每个 SeassionCards 中播放视频。我应该为每个视频创建不同的飞镖文件吗?或者,是否有机会为每个按钮一个一个地带来视频?
问问题
31 次
1 回答
0
我假设你的代码中有这样的东西
...
children:[
SessionCard(
sessionNum:1,
press:(){ }
),
SessionCard(
sessionNum:2,
press:(){ }
),
SessionCard(
sessionNum:3,
press:(){ }
),
SessionCard(
sessionNum:4,
press:(){ }
),
]
改成这个
您可以将数据存储在列表中
//创建一个类
class SessionCardMode{
final int sessionNum;
final String videoUrl;
SessionCardModel(this.sessionNum, this.videoUrl);
}
在您的小部件顶部填写您的数据
final List<SessionCardModel> sessionItems =
[
SessionCardModel(1, 'https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4?_=1'),
SessionCardModel(2, 'https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4?_=1'),
SessionCardModel(3, 'https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4?_=1'),
SessionCardModel(4, 'https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4?_=1'),
SessionCardModel(5, 'https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4?_=1'),
SessionCardModel(6, 'https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4?_=1'),
]
在您的列表中,将其更改为这样
...
children:List.generate(sessionItems.length,(index) =>
SessionCard(
sessionNum:sessionItems[index].sessionNum,
press:(){
// you can get the videoUrl of the particular session
// by using sessionItems[index].videoUrl
// you can open the video here
}
));
这将清理代码并解决您的问题
于 2021-02-14T18:01:55.583 回答