| 
									
										
										
										
											2025-07-29 08:50:41 +08:00
										 |  |  | import 'dart:io'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-07-11 11:03:21 +08:00
										 |  |  | import 'package:flutter/material.dart'; | 
					
						
							|  |  |  | import 'package:photo_view/photo_view.dart'; | 
					
						
							|  |  |  | import 'package:qhd_prevention/pages/my_appbar.dart'; | 
					
						
							|  |  |  | // 查看大图
 | 
					
						
							|  |  |  | class SingleImageViewer extends StatelessWidget { | 
					
						
							|  |  |  |   final String imageUrl; | 
					
						
							|  |  |  |   const SingleImageViewer({Key? key, required this.imageUrl}) : super(key: key); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   @override | 
					
						
							|  |  |  |   Widget build(BuildContext context) { | 
					
						
							| 
									
										
										
										
											2025-07-29 08:50:41 +08:00
										 |  |  |     ImageProvider provider; | 
					
						
							|  |  |  |     if (imageUrl.toLowerCase().startsWith('http')) { | 
					
						
							|  |  |  |       provider = NetworkImage(imageUrl); | 
					
						
							|  |  |  |     } else { | 
					
						
							|  |  |  |       provider = FileImage(File(imageUrl)); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2025-07-11 11:03:21 +08:00
										 |  |  |     return Scaffold( | 
					
						
							| 
									
										
										
										
											2025-07-28 16:50:40 +08:00
										 |  |  |       backgroundColor: Colors.black.withValues(alpha: 0.5), | 
					
						
							| 
									
										
										
										
											2025-07-11 11:03:21 +08:00
										 |  |  |       appBar: MyAppbar( | 
					
						
							| 
									
										
										
										
											2025-07-28 14:22:07 +08:00
										 |  |  |         isBack: false, | 
					
						
							|  |  |  |         actions: [ | 
					
						
							|  |  |  |           IconButton(onPressed: () { | 
					
						
							|  |  |  |             Navigator.of(context).pop(); | 
					
						
							|  |  |  |           }, icon: Icon(Icons.close, color: Colors.white, size: 40,),) | 
					
						
							|  |  |  |         ], | 
					
						
							| 
									
										
										
										
											2025-07-28 16:50:40 +08:00
										 |  |  |         backgroundColor: Colors.black.withValues(alpha:0.5), title: '', | 
					
						
							| 
									
										
										
										
											2025-07-11 11:03:21 +08:00
										 |  |  |       ), | 
					
						
							|  |  |  |       body: Center( | 
					
						
							|  |  |  |         child: PhotoView( | 
					
						
							| 
									
										
										
										
											2025-07-29 08:50:41 +08:00
										 |  |  |           imageProvider: provider, | 
					
						
							| 
									
										
										
										
											2025-07-28 16:50:40 +08:00
										 |  |  |           backgroundDecoration: BoxDecoration(color: Colors.black.withValues(alpha:0.5)), | 
					
						
							| 
									
										
										
										
											2025-07-11 11:03:21 +08:00
										 |  |  |           minScale: PhotoViewComputedScale.contained, | 
					
						
							|  |  |  |           maxScale: PhotoViewComputedScale.covered * 2, | 
					
						
							|  |  |  |           onTapUp: (context, details, controllerValue) { | 
					
						
							|  |  |  |             Navigator.of(context).pop(); | 
					
						
							|  |  |  |           }, | 
					
						
							|  |  |  |         ), | 
					
						
							|  |  |  |       ), | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } |