Files
fcs/lib/fcs/common/pages/widgets/show_multiple_img.dart

58 lines
1.8 KiB
Dart
Raw Normal View History

2020-09-18 21:33:41 +06:30
import 'package:fcs/fcs/common/helpers/theme.dart';
2020-09-17 06:02:48 +06:30
import 'package:fcs/fcs/common/pages/widgets/display_image_source.dart';
import 'package:flutter/material.dart';
import 'package:photo_view/photo_view.dart';
import 'package:photo_view/photo_view_gallery.dart';
class ShowMultiImage extends StatefulWidget {
final List<DisplayImageSource> displayImageSources;
2020-09-18 21:33:41 +06:30
final int initialPage;
const ShowMultiImage(
{Key key, this.displayImageSources, this.initialPage = 0})
: super(key: key);
2020-09-17 06:02:48 +06:30
@override
_ShowMultiImageState createState() => _ShowMultiImageState();
}
class _ShowMultiImageState extends State<ShowMultiImage> {
2020-09-18 21:33:41 +06:30
PageController pageController;
@override
void initState() {
pageController = PageController(initialPage: widget.initialPage);
super.initState();
}
2020-09-17 06:02:48 +06:30
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
child: PhotoViewGallery.builder(
scrollPhysics: const BouncingScrollPhysics(),
builder: (BuildContext context, int index) {
return PhotoViewGalleryPageOptions(
imageProvider: widget.displayImageSources[index].imageProvider,
initialScale: PhotoViewComputedScale.contained * 0.8,
heroAttributes: PhotoViewHeroAttributes(
tag: widget.displayImageSources[index].hashCode),
);
},
itemCount: widget.displayImageSources.length,
loadingBuilder: (context, event) => Center(
child: Container(
width: 20.0,
height: 20.0,
child: CircularProgressIndicator(
value: event == null
? 0
: event.cumulativeBytesLoaded / event.expectedTotalBytes,
),
),
),
2020-09-18 21:33:41 +06:30
backgroundDecoration: const BoxDecoration(
color: primaryColor,
),
pageController: pageController,
2020-09-17 06:02:48 +06:30
)));
}
}