1

我想在每个 SeassionCards 中播放视频。我应该为每个视频创建不同的飞镖文件吗?或者,是否有机会为每个按钮一个一个地带来视频?

U/I 和代码

4

1 回答 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 回答