Flutter 如何使用Flatter和firebase创建视频列表?
我对Flitter是新手,我想用Flitter和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
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,
),
),
],
),
);
}
},
);
}
},
),