fix: 图片预览放大、取消下滑关闭图片预览
This commit is contained in:
@ -135,25 +135,14 @@ class _ImagePreviewState extends State<ImagePreview>
|
||||
),
|
||||
body: Stack(
|
||||
children: [
|
||||
DismissiblePage(
|
||||
backgroundColor: Colors.transparent,
|
||||
onDismissed: () {
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
// Note that scrollable widget inside DismissiblePage might limit the functionality
|
||||
// If scroll direction matches DismissiblePage direction
|
||||
direction: DismissiblePageDismissDirection.down,
|
||||
disabled: _dismissDisabled,
|
||||
isFullScreen: true,
|
||||
child: GestureDetector(
|
||||
GestureDetector(
|
||||
onLongPress: () => onOpenMenu(),
|
||||
child: ExtendedImageGesturePageView.builder(
|
||||
controller: ExtendedPageController(
|
||||
initialPage: _previewController.initialPage.value,
|
||||
pageSpacing: 0,
|
||||
),
|
||||
onPageChanged: (int index) =>
|
||||
_previewController.onChange(index),
|
||||
onPageChanged: (int index) => _previewController.onChange(index),
|
||||
canScrollPage: (GestureDetails? gestureDetails) =>
|
||||
gestureDetails!.totalScale! <= 1.0,
|
||||
itemCount: widget.imgList!.length,
|
||||
@ -245,13 +234,14 @@ class _ImagePreviewState extends State<ImagePreview>
|
||||
},
|
||||
),
|
||||
),
|
||||
),
|
||||
Positioned(
|
||||
left: 0,
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
child: Container(
|
||||
padding: EdgeInsets.only(
|
||||
left: 20,
|
||||
right: 20,
|
||||
bottom: MediaQuery.of(context).padding.bottom + 30),
|
||||
decoration: const BoxDecoration(
|
||||
gradient: LinearGradient(
|
||||
@ -264,20 +254,34 @@ class _ImagePreviewState extends State<ImagePreview>
|
||||
tileMode: TileMode.mirror,
|
||||
),
|
||||
),
|
||||
child: Obx(
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
widget.imgList!.length > 1
|
||||
? Obx(
|
||||
() => Text.rich(
|
||||
textAlign: TextAlign.center,
|
||||
TextSpan(
|
||||
style: const TextStyle(color: Colors.white, fontSize: 15),
|
||||
style: const TextStyle(
|
||||
color: Colors.white, fontSize: 16),
|
||||
children: [
|
||||
TextSpan(
|
||||
text: _previewController.currentPage.toString()),
|
||||
text: _previewController.currentPage
|
||||
.toString()),
|
||||
const TextSpan(text: ' / '),
|
||||
TextSpan(text: widget.imgList!.length.toString()),
|
||||
TextSpan(
|
||||
text:
|
||||
widget.imgList!.length.toString()),
|
||||
]),
|
||||
),
|
||||
)
|
||||
: const SizedBox(),
|
||||
IconButton(
|
||||
onPressed: () => Get.back(),
|
||||
icon: const Icon(Icons.close, color: Colors.white),
|
||||
),
|
||||
),
|
||||
],
|
||||
)),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user