Flutter 如何使用Flatter和firebase创建视频列表?

Flutter 如何使用Flatter和firebase创建视频列表?,flutter,video,google-cloud-firestore,Flutter,Video,Google Cloud Firestore,我对Flitter是新手,我想用Flitter和firebase创建一个视频列表,所以,我用ListView.builder()创建了它,但正如你所知ListView.builder()只创建屏幕上的内容,所以,如果我向下滚动并想看到一些内容,它会重建,我不想重建 代码 返回StreamBuilder( 流:Firestore.instance .collection(“Khatma collection”) .文件(“Khatma 1”) .collection(“视频”) .snapshot

我对Flitter是新手,我想用Flitter和firebase创建一个视频列表,所以,我用
ListView.builder()
创建了它,但正如你所知
ListView.builder()
只创建屏幕上的内容,所以,如果我向下滚动并想看到一些内容,它会重建,我不想重建

代码

返回StreamBuilder(
流:Firestore.instance
.collection(“Khatma collection”)
.文件(“Khatma 1”)
.collection(“视频”)
.snapshots(),
生成器:(上下文,异步快照){
if(snapshot.hasData){
返回ListView.builder(
收缩膜:对,
itemCount:snapshot.data.documents.length,
itemBuilder:(上下文,i){
var rng=新随机数();
int ii=rng.nextInt(4);
如果(ii==iii){
}否则{
iii=ii;
var link=snapshot.data.documents[ii].data['link'];
var uploader=snapshot.data.documents[ii].data['uploader'];
var likes=snapshot.data.documents[ii].data['likes'];
var like=likes.toString();
布尔喜欢;
如果(int.parse(like)>0){
喜欢=真实;
}else if(int.parse(like)==0){
喜欢=错误;
}
最终视频播放器控制器=
视频播放控制器。网络(链接);
咀嚼控制器=咀嚼控制器(
allowMuting:对,
自动初始化:true,
设备方向全屏显示后:方向,
allowFullScreen:是的,
专题:16/9,
videoPlayerController:videoPlayerController,
);
返回SingleChildScrollView(
子:列(
儿童:[
丘伊(
控制器:咀嚼控制器,
),
),
],
),
);
}
},
);
}
},
),

AddAutomaticEpaLive是解决方案吗?ListView.builder()中的属性我认为您应该指定您的问题,因为您只详细说明了
ListView().builder
的功能。请查看我的编辑。尝试了此操作,但没有成功。[
return StreamBuilder<Object>(
        stream: Firestore.instance
            .collection('Khatma Collection')
            .document('Khatma 1')
            .collection('Videos')
            .snapshots(),
        builder: (context, AsyncSnapshot snapshot) {
          if (snapshot.hasData) {
            return ListView.builder(
              shrinkWrap: true,
              itemCount: snapshot.data.documents.length,
              itemBuilder: (context, i) {
                var rng = new Random();
                int ii = rng.nextInt(4);
                if (ii == iii) {
                } else {
                  iii = ii;
                  var link = snapshot.data.documents[ii].data['Link'];
                  var uploader = snapshot.data.documents[ii].data['Uploader'];
                  var likes = snapshot.data.documents[ii].data['Likes'];
                  var like = likes.toString();
                  bool liked;
                  if (int.parse(like) > 0) {
                    liked = true;
                  } else if (int.parse(like) == 0) {
                    liked = false;
                  }
                  final videoPlayerController =
                      VideoPlayerController.network(link);
                  chewieController = ChewieController(
                    allowMuting: true,
                    autoInitialize: true,
                    deviceOrientationsAfterFullScreen: orientation,
                    allowFullScreen: true,
                    aspectRatio: 16 / 9,
                    videoPlayerController: videoPlayerController,
                  );
                  return SingleChildScrollView(
                    child: Column(
                      children: [
                        Chewie(
                          controller: chewieController,
                        ),
                        ),
                      ],
                    ),
                  );
                }
              },
            );
          }
        },
      ),