Carousel Building from Stream builder and Firebase Flutter
@override
void initState() {
_queryDb();
super.initState();
}
Future _queryDb() {
slides = FirebaseFirestore.instance
.collection('slider')
.snapshots()
.map((list) => list.docs.map((doc) => doc.data()));
return slides;
}
@override
Widget build(BuildContext context) {
return Column(
children: [
if (_dataLength != 0)
StreamBuilder(
stream: _queryDb(),
builder: (context, AsyncSnapshot snap) {
if (snap.hasError) {
return Text('Something went wrong ${snap.error}');
}
if (snap.connectionState == ConnectionState.waiting) {
return Text("Loading");
}
List slideList = snap.data.toList();
return CarouselSlider.builder(
itemCount: slideList.length,
itemBuilder: (context, index, page) {
return Image.network(
slideList[index]['image'],
fit: BoxFit.fill,
width: MediaQuery.of(context).size.width * 0.9,
);
},
carouselController: buttonCarouselController,
options: CarouselOptions(
initialPage: 0,
autoPlay: true,
height: 150,
onPageChanged: (index, reason) {
setState(() {
_index = index;
});
},
enlargeCenterPage: true));
}),
],
);
}
Comments
Post a Comment