preview_photo_page.dart 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. // import 'dart:io';
  2. //
  3. // import 'package:flutter/material.dart';
  4. // import 'package:cs_resources/generated/assets.dart';
  5. // import 'package:router/path/router_path.dart';
  6. // import 'package:shared/utils/screen_util.dart';
  7. // import 'package:widgets/my_load_image.dart';
  8. // import 'package:widgets/my_text_view.dart';
  9. // import 'package:cs_resources/constants/color_constants.dart';
  10. // import 'package:extended_image/extended_image.dart';
  11. //
  12. // /*
  13. // * 预览的图片的页面,内部使用PageView左右切换
  14. // */
  15. // class PreviewPhotoPage extends BaseStatefulPage {
  16. // PreviewPhotoPage({super.key});
  17. //
  18. // //启动当前页面
  19. // static Future<T?>? startInstance<T>(List<String> imgs, int position) {
  20. // return Get.toNamed(RouterPath.previewImage, arguments: {'imgs': imgs, "position": position});
  21. // }
  22. //
  23. // @override
  24. // _PreviewPhotoPageState createState() => _PreviewPhotoPageState();
  25. //
  26. // @override
  27. // GetxController createRawController() {
  28. // throw UnimplementedError();
  29. // }
  30. // }
  31. //
  32. // class _PreviewPhotoPageState extends State<PreviewPhotoPage> {
  33. // late List<String> images;
  34. // int currentIndex = 0;
  35. //
  36. // @override
  37. // void initState() {
  38. // super.initState();
  39. // images = Get.arguments['imgs'];
  40. // currentIndex = Get.arguments['position'];
  41. // }
  42. //
  43. // @override
  44. // void dispose() {
  45. // super.dispose();
  46. // clearGestureDetailsCache();
  47. // }
  48. //
  49. // @override
  50. // Widget build(BuildContext context) {
  51. // return Scaffold(
  52. // backgroundColor: ColorConstants.black,
  53. //
  54. // body: SafeArea(
  55. // bottom: true,
  56. // top: false,
  57. // //真正的 Content 布局
  58. // child: Column(`
  59. // children: [
  60. // SizedBox(height: ScreenUtil.getStatusBarH(context)),
  61. // Row(
  62. // children: [
  63. // //间距
  64. // SizedBox(width: 30),
  65. // Expanded(
  66. // child: MyTextView(
  67. // "${currentIndex + 1}/${images.length}",
  68. // textColor: Colors.white,
  69. // fontSize: 18,
  70. // isFontRegular: true,
  71. // textAlign: TextAlign.center,
  72. // ),
  73. // ),
  74. //
  75. // InkWell(
  76. // onTap: () {
  77. // Get.back();
  78. // },
  79. // child: const MyAssetImage(
  80. // Assets.baseLibDialogDeleteIcon,
  81. // width: 14,
  82. // height: 14,
  83. // ),
  84. // ),
  85. //
  86. // //间距
  87. // SizedBox(width: 15),
  88. // ],
  89. // ),
  90. // Expanded(
  91. // child: ExtendedImageGesturePageView.builder(
  92. // controller: ExtendedPageController(
  93. // //图片PageView的配置选项
  94. // initialPage: currentIndex,
  95. // pageSpacing: 10,
  96. // ),
  97. // itemCount: images.length,
  98. // scrollDirection: Axis.horizontal,
  99. // onPageChanged: (int index) {
  100. // setState(() {
  101. // currentIndex = index;
  102. // });
  103. // },
  104. // itemBuilder: (BuildContext context, int index) {
  105. // //默认网络加载的占位图
  106. // final Widget placeholder = Container(
  107. // //如果没有设置占位图,使用默认的灰色背景内置Icon小图标
  108. // width: double.infinity,
  109. // height: double.infinity,
  110. // color: ColorConstants.greye0,
  111. // alignment: Alignment.center,
  112. // child: const MyAssetImage(
  113. // Assets.baseLibImageDefaultPlaceholder,
  114. // width: 38,
  115. // height: 32,
  116. // ),
  117. // );
  118. //
  119. // //区分网络图片和本地图片
  120. // Widget image = images[index].startsWith("http")
  121. // ? ExtendedImage.network(
  122. // images[index],
  123. // fit: BoxFit.contain,
  124. // timeLimit: const Duration(milliseconds: 30000),
  125. // cache: true,
  126. // mode: ExtendedImageMode.gesture,
  127. // loadStateChanged: (ExtendedImageState state) {
  128. // switch (state.extendedImageLoadState) {
  129. // case LoadState.loading:
  130. // return placeholder;
  131. //
  132. // case LoadState.completed:
  133. // return null;
  134. //
  135. // case LoadState.failed:
  136. // return placeholder;
  137. // }
  138. // },
  139. // initGestureConfigHandler: (ExtendedImageState state) {
  140. // return GestureConfig(
  141. // // 图片展示的配置选项
  142. // inPageView: true,
  143. // initialScale: 1.0,
  144. // maxScale: 5.0,
  145. // animationMaxScale: 6.0,
  146. // initialAlignment: InitialAlignment.center,
  147. // cacheGesture: false,
  148. // );
  149. // },
  150. // )
  151. // : ExtendedImage.file(
  152. // File(images[index]),
  153. // fit: BoxFit.contain,
  154. // mode: ExtendedImageMode.gesture,
  155. // initGestureConfigHandler: (ExtendedImageState state) {
  156. // return GestureConfig(
  157. // // 图片展示的配置选项
  158. // inPageView: true,
  159. // initialScale: 1.0,
  160. // maxScale: 5.0,
  161. // animationMaxScale: 6.0,
  162. // initialAlignment: InitialAlignment.center,
  163. // cacheGesture: false,
  164. // );
  165. // },
  166. // );
  167. //
  168. // if (index == currentIndex) {
  169. // return Hero(
  170. // // tag: index.toString(),
  171. // tag: "0",
  172. // child: image,
  173. // );
  174. // } else {
  175. // return image;
  176. // }
  177. // },
  178. // )),
  179. // ],
  180. // ),
  181. // ));
  182. // }
  183. // }