Rumahjo-Android-APP/lib/Ui/screens/widgets/all_gallary_image.dart

72 lines
2.5 KiB
Dart
Raw Normal View History

2024-09-07 00:58:50 +00:00
import 'package:flutter/material.dart';
import '../../../utils/Extensions/extensions.dart';
import '../../../utils/responsiveSize.dart';
import '../../../utils/ui_utils.dart';
import 'video_view_screen.dart';
class AllGallaryImages extends StatelessWidget {
final List images;
final String? youtubeThumbnail;
const AllGallaryImages(
{super.key, required this.images, this.youtubeThumbnail});
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: context.color.backgroundColor,
appBar: UiUtils.buildAppBar(
context,
showBackButton: true,
),
body: GridView.builder(
itemCount: images.length,
padding: const EdgeInsets.all(16),
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 3, crossAxisSpacing: 5, mainAxisSpacing: 5),
itemBuilder: (context, index) {
return ClipRRect(
borderRadius: BorderRadius.circular(18),
child: GestureDetector(
onTap: () {
if (images[index].isVideo == true) {
Navigator.push(context, MaterialPageRoute(
builder: (context) {
return VideoViewScreen(videoUrl: images[index].image);
},
));
} else {
var stringImages = images.map((e) => e.imageUrl).toList();
UiUtils.imageGallaryView(
context,
images: stringImages,
initalIndex: index,
then: () {},
);
}
},
child: SizedBox(
width: 76.rw(context),
height: 76.rh(context),
child: images[index].isVideo == true
? Stack(
fit: StackFit.expand,
children: [
UiUtils.getImage(youtubeThumbnail!,
fit: BoxFit.cover),
const Icon(
Icons.play_arrow,
size: 28,
)
],
)
: UiUtils.getImage(images[index].imageUrl ?? "",
fit: BoxFit.cover),
),
));
},
),
);
}
}