Firebase 带有网络照片的页面需要很长时间才能加载颤振
我有一个带有3张图片的页面(详情如下)。此页面需要花费大量时间(超过5秒)才能加载。 我查看了颤振剖面模式。我看到当这些照片加载时,内存堆会随之增加 这是密码Firebase 带有网络照片的页面需要很长时间才能加载颤振,firebase,flutter,dart,Firebase,Flutter,Dart,我有一个带有3张图片的页面(详情如下)。此页面需要花费大量时间(超过5秒)才能加载。 我查看了颤振剖面模式。我看到当这些照片加载时,内存堆会随之增加 这是密码 class AppHome extends StatefulWidget { @override _AppHomeState createState() => _AppHomeState(); } var slider1; var slider2; var slider3; Firestore _db = Firest
class AppHome extends StatefulWidget {
@override
_AppHomeState createState() => _AppHomeState();
}
var slider1;
var slider2;
var slider3;
Firestore _db = Firestore.instance;
bool carouselloaded = false;
MediaQueryData queryData;
class _AppHomeState extends State<AppHome> {
@override
void initState() {
super.initState();
getCarouselImages();
}
StorageReference _reference = FirebaseStorage.instance.ref();
List carouselImages = new List(3);
List<DocumentSnapshot> posts;
var emptyimage = Image.asset("assets/Carousel/slider1.jpg");
void getCarouselImages() async {
try {
QuerySnapshot snap = await _db
.collection("carouselimage")
.orderBy("productid")
.getDocuments();
setState(() {
posts = snap.documents;
});
} catch (e) {
print(e);
}
slider1 = Image(
image: NetworkImage(posts[0].data["url"]),
);
print(posts[0].data["url"]);
slider2 = Image(
image: NetworkImage(posts[1].data["url"]),
);
slider3 = Image(
image: NetworkImage(posts[2].data["url"]),
);
carouselloaded = true;
}
@override
Widget build(BuildContext context) {
if (true) {
queryData = MediaQuery.of(context);
sleep(const Duration(seconds: 5));
return Scaffold(
body: Column(
children: [
SizedBox(
height: 0,
),
////Here it is
CarouselSlider.builder(
options: CarouselOptions(autoPlay: true),
itemCount: 3,
itemBuilder: (BuildContext context, int itemIndex) => Container(
child: itemIndex == 0
? slider1
: itemIndex == 1 ? slider2 : slider3,
),
),
],
),
);
} else {
return Text("Loading");
}
}
}
class AppHome扩展StatefulWidget{
@凌驾
_AppHomeState createState()=>\u AppHomeState();
}
var滑块1;
var滑块2;
var滑块3;
Firestore _db=Firestore.instance;
bool carouselloaded=假;
中间栎叶栎;
类_AppHomeState扩展状态{
@凌驾
void initState(){
super.initState();
getCarouselImages();
}
StorageReference_reference=FirebaseStorage.instance.ref();
列表转盘图像=新列表(3);
列出员额;
var emptyimage=Image.asset(“assets/Carousel/slider1.jpg”);
void getCarouselImages()异步{
试一试{
QuerySnapshot快照=等待_db
.收藏(“旋转木马”)
.orderBy(“产品ID”)
.getDocuments();
设置状态(){
posts=snap.documents;
});
}捕获(e){
印刷品(e);
}
滑块1=图像(
图像:NetworkImage(发布[0]。数据[“url”]),
);
打印(发布[0]。数据[“url]”);
滑块2=图像(
图像:NetworkImage(发布[1]。数据[“url”]),
);
滑块3=图像(
图像:NetworkImage(发布[2]。数据[“url”]),
);
carouselloaded=true;
}
@凌驾
小部件构建(构建上下文){
如果(真){
queryData=MediaQuery.of(上下文);
睡眠(持续时间(秒:5));
返回脚手架(
正文:专栏(
儿童:[
大小盒子(
高度:0,,
),
////给你
旋转滑翔机(
选项:旋转木马选项(自动播放:true),
物品计数:3,
itemBuilder:(BuildContext上下文,int itemIndex)=>容器(
子项:itemIndex==0
?滑块1
:itemIndex==1?滑块2:滑块3,
),
),
],
),
);
}否则{
返回文本(“加载”);
}
}
}
图像详细信息:
- 图像1=76kb(1170 X 619)像素
- 图像2=40kb(1170 X 619)像素
- 图3=20kb(868 X 440)像素