some fix
# Conflicts: # lib/presentation/navigation/app_router.dart # pubspec.yaml
This commit is contained in:
50
lib/presentation/components/full_screen_image_viewer.dart
Normal file
50
lib/presentation/components/full_screen_image_viewer.dart
Normal file
@@ -0,0 +1,50 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class FullScreenImageViewer extends StatefulWidget {
|
||||
final List<String> photoUrls;
|
||||
final int initialIndex;
|
||||
|
||||
const FullScreenImageViewer({
|
||||
super.key,
|
||||
required this.photoUrls,
|
||||
required this.initialIndex,
|
||||
});
|
||||
|
||||
@override
|
||||
State<FullScreenImageViewer> createState() => _FullScreenImageViewerState();
|
||||
}
|
||||
|
||||
class _FullScreenImageViewerState extends State<FullScreenImageViewer> {
|
||||
late PageController _pageController;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_pageController = PageController(initialPage: widget.initialIndex);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.black,
|
||||
appBar: AppBar(
|
||||
backgroundColor: Colors.transparent,
|
||||
iconTheme: const IconThemeData(color: Colors.white),
|
||||
),
|
||||
body: PageView.builder(
|
||||
controller: _pageController,
|
||||
itemCount: widget.photoUrls.length,
|
||||
itemBuilder: (context, index) {
|
||||
final isNetwork = widget.photoUrls[index].startsWith('http');
|
||||
return InteractiveViewer(
|
||||
child: Center(
|
||||
child: isNetwork
|
||||
? Image.network(widget.photoUrls[index])
|
||||
: Image.asset(widget.photoUrls[index]),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user