You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
diplomatic-quarter/lib/widgets/data_display/CarouselSlider.dart

67 lines
2.1 KiB
Dart

import 'package:carousel_pro/carousel_pro.dart';
import 'package:diplomaticquarterapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart';
import 'package:flutter/material.dart';
class CarouselSlider extends StatelessWidget {
const CarouselSlider({
@required this.imagesUrlList,
@required this.width,
@required this.height,
this.onImageChange,
this.autoPlay = false,
Key key,
}) : super(key: key);
final List imagesUrlList;
final double height;
final double width;
final bool autoPlay;
final Function onImageChange;
@override
Widget build(BuildContext context) {
return Carousel(
boxFit: BoxFit.cover,
autoplay: true,
animationCurve: Curves.fastOutSlowIn,
animationDuration: Duration(milliseconds: 1000),
dotSize: 0.0,
dotIncreasedColor: Colors.transparent,
dotBgColor: Colors.transparent,
dotPosition: DotPosition.bottomCenter,
dotVerticalPadding: 10.0,
onImageChange: onImageChange,
showIndicator: true,
indicatorBgPadding: 7.0,
images: imagesUrlList.map((image) {
return Builder(builder: (BuildContext context) {
return Container(
child: Image.network(image, loadingBuilder: (BuildContext context,
Widget child, ImageChunkEvent loadingProgress) {
if (loadingProgress == null) return child;
return Center(
child: SizedBox(
width: 40.0,
height: 40.0,
child: AppCircularProgressIndicator(
// background: Theme
// .of(context)
// .primaryColor,
// value: loadingProgress.expectedTotalBytes != null
// ? loadingProgress.cumulativeBytesLoaded /
// loadingProgress.expectedTotalBytes
// : 0,
),
),
);
},
width: width,
height: height,
fit: BoxFit.fill),
);
});
}).toList(),
);
}
}