mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-04-21 03:15:14 +08:00
@@ -4,11 +4,9 @@
|
||||
|
||||
import 'dart:ui' show SemanticsRole;
|
||||
|
||||
import 'package:PiliPlus/common/widgets/flutter/page/page_view.dart';
|
||||
import 'package:PiliPlus/common/widgets/gesture/horizontal_drag_gesture_recognizer.dart';
|
||||
import 'package:flutter/foundation.dart' show clampDouble;
|
||||
import 'package:flutter/gestures.dart' show DragStartBehavior;
|
||||
import 'package:flutter/material.dart' hide TabBarView, PageView;
|
||||
import 'package:flutter/material.dart' hide TabBarView;
|
||||
|
||||
/// A page view that displays the widget which corresponds to the currently
|
||||
/// selected tab.
|
||||
@@ -357,7 +355,7 @@ class _CustomTabBarViewState extends State<CustomTabBarView> {
|
||||
|
||||
return NotificationListener<ScrollNotification>(
|
||||
onNotification: _handleScrollNotification,
|
||||
child: PageView<CustomHorizontalDragGestureRecognizer>(
|
||||
child: PageView(
|
||||
scrollDirection: widget.scrollDirection,
|
||||
dragStartBehavior: widget.dragStartBehavior,
|
||||
clipBehavior: widget.clipBehavior,
|
||||
@@ -365,8 +363,6 @@ class _CustomTabBarViewState extends State<CustomTabBarView> {
|
||||
physics: widget.physics == null
|
||||
? const PageScrollPhysics().applyTo(const ClampingScrollPhysics())
|
||||
: const PageScrollPhysics().applyTo(widget.physics),
|
||||
horizontalDragGestureRecognizer:
|
||||
CustomHorizontalDragGestureRecognizer(),
|
||||
children: _childrenWithKey,
|
||||
),
|
||||
);
|
||||
|
||||
@@ -26,7 +26,7 @@ class CustomHorizontalDragGestureRecognizer
|
||||
globalDistanceMoved.abs(),
|
||||
gestureSettings,
|
||||
pointerDeviceKind,
|
||||
_initialPosition!,
|
||||
_initialPosition,
|
||||
lastPosition.global,
|
||||
);
|
||||
}
|
||||
@@ -38,7 +38,7 @@ bool _computeHitSlop(
|
||||
double globalDistanceMoved,
|
||||
DeviceGestureSettings? settings,
|
||||
PointerDeviceKind kind,
|
||||
Offset initialPosition,
|
||||
Offset? initialPosition,
|
||||
Offset lastPosition,
|
||||
) {
|
||||
switch (kind) {
|
||||
@@ -49,13 +49,13 @@ bool _computeHitSlop(
|
||||
case PointerDeviceKind.unknown:
|
||||
case PointerDeviceKind.touch:
|
||||
return globalDistanceMoved > touchSlopH &&
|
||||
_cacl(initialPosition, lastPosition);
|
||||
_calc(initialPosition!, lastPosition);
|
||||
case PointerDeviceKind.trackpad:
|
||||
return globalDistanceMoved > (settings?.touchSlop ?? kTouchSlop);
|
||||
}
|
||||
}
|
||||
|
||||
bool _cacl(Offset initialPosition, Offset lastPosition) {
|
||||
bool _calc(Offset initialPosition, Offset lastPosition) {
|
||||
final offset = lastPosition - initialPosition;
|
||||
return offset.dx.abs() > offset.dy.abs() * 3;
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ class CustomGridView extends StatelessWidget {
|
||||
);
|
||||
}
|
||||
|
||||
static BorderRadius borderRadius(
|
||||
static BorderRadius _borderRadius(
|
||||
int col,
|
||||
int length,
|
||||
int index, {
|
||||
@@ -255,7 +255,7 @@ class CustomGridView extends StatelessWidget {
|
||||
height: imageHeight,
|
||||
children: List.generate(length, (index) {
|
||||
final item = picArr[index];
|
||||
final radius = borderRadius(column, length, index);
|
||||
final borderRadius = _borderRadius(column, length, index);
|
||||
return LayoutId(
|
||||
id: index,
|
||||
child: GestureDetector(
|
||||
@@ -274,17 +274,14 @@ class CustomGridView extends StatelessWidget {
|
||||
clipBehavior: Clip.none,
|
||||
alignment: Alignment.center,
|
||||
children: [
|
||||
ClipRRect(
|
||||
borderRadius: radius,
|
||||
child: NetworkImgLayer(
|
||||
type: .emote,
|
||||
src: item.url,
|
||||
width: imageWidth,
|
||||
height: imageHeight,
|
||||
alignment: item.isLongPic ? .topCenter : .center,
|
||||
cacheWidth: item.width <= item.height,
|
||||
getPlaceHolder: () => placeHolder,
|
||||
),
|
||||
NetworkImgLayer(
|
||||
src: item.url,
|
||||
width: imageWidth,
|
||||
height: imageHeight,
|
||||
borderRadius: borderRadius,
|
||||
alignment: item.isLongPic ? .topCenter : .center,
|
||||
cacheWidth: item.width <= item.height,
|
||||
getPlaceHolder: () => placeHolder,
|
||||
),
|
||||
if (item.isLivePhoto)
|
||||
const PBadge(
|
||||
|
||||
Reference in New Issue
Block a user