Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-02-25 18:02:36 +08:00
parent e707764f84
commit 2bdab71138
14 changed files with 81 additions and 64 deletions

View File

@@ -9,7 +9,7 @@ import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/common/widgets/gesture/image_horizontal_drag_gesture_recognizer.dart';
import 'package:PiliPlus/common/widgets/image_viewer/viewer.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/gestures.dart' show DoubleTapGestureRecognizer;
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter/semantics.dart';

View File

@@ -431,7 +431,7 @@ class _ViewerState extends State<Viewer> with SingleTickerProviderStateMixin {
if (initialPosition == null) {
return true;
}
if (_scale <= 1.0) {
if (_scale <= widget.minScale) {
return true;
}
final containerWidth = widget.containerSize.width;
@@ -442,9 +442,9 @@ class _ViewerState extends State<Viewer> with SingleTickerProviderStateMixin {
final dx = (1 - _scale) * containerWidth / 2;
final dxOffset = (imageWidth - containerWidth) / 2;
if (initialPosition.dx < lastPosition.global.dx) {
return _position.dx.equals(dx + dxOffset);
return _position.dx.equals(dx + dxOffset, 1e-6);
} else {
return _position.dx.equals(dx - dxOffset);
return _position.dx.equals(dx - dxOffset, 1e-6);
}
}

View File

@@ -3,22 +3,12 @@ import 'package:PiliPlus/common/widgets/gesture/horizontal_drag_gesture_recogniz
import 'package:PiliPlus/utils/storage_pref.dart';
import 'package:flutter/material.dart' hide TabBarView;
Widget videoTabBarView({
required List<Widget> children,
TabController? controller,
}) => TabBarView<CustomHorizontalDragGestureRecognizer>(
controller: controller,
physics: const CustomTabBarViewScrollPhysics(parent: ClampingScrollPhysics()),
horizontalDragGestureRecognizer: CustomHorizontalDragGestureRecognizer.new,
children: children,
);
Widget tabBarView({
required List<Widget> children,
TabController? controller,
}) => TabBarView<CustomHorizontalDragGestureRecognizer>(
physics: const CustomTabBarViewScrollPhysics(),
controller: controller,
physics: clampingScrollPhysics,
horizontalDragGestureRecognizer: CustomHorizontalDragGestureRecognizer.new,
children: children,
);
@@ -32,6 +22,10 @@ SpringDescription _customSpringDescription() {
);
}
const clampingScrollPhysics = CustomTabBarViewScrollPhysics(
parent: ClampingScrollPhysics(),
);
class CustomTabBarViewScrollPhysics extends ScrollPhysics {
const CustomTabBarViewScrollPhysics({super.parent});