opt gesture

Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-01-24 21:17:56 +08:00
parent e9b5cffa91
commit 1f64de5954
12 changed files with 62 additions and 48 deletions

View File

@@ -1,10 +1,10 @@
import 'package:PiliPlus/common/widgets/gesture/tap_gesture_recognizer.dart';
import 'package:PiliPlus/models_new/video/video_ai_conclusion/model_result.dart';
import 'package:PiliPlus/pages/common/slide/common_slide_page.dart';
import 'package:PiliPlus/pages/video/controller.dart';
import 'package:PiliPlus/pages/video/introduction/ugc/widgets/selectable_text.dart';
import 'package:PiliPlus/utils/duration_utils.dart';
import 'package:extended_nested_scroll_view/extended_nested_scroll_view.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
@@ -99,7 +99,7 @@ class AiConclusionPanel extends CommonSlidePage {
)
: null,
recognizer: tap
? (TapGestureRecognizer()
? (NoDeadlineTapGestureRecognizer()
..onTap = () {
try {
Get.find<VideoDetailController>(

View File

@@ -1,5 +1,6 @@
import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/common/widgets/dialog/dialog.dart';
import 'package:PiliPlus/common/widgets/gesture/tap_gesture_recognizer.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
import 'package:PiliPlus/common/widgets/pendant_avatar.dart';
import 'package:PiliPlus/common/widgets/scroll_physics.dart';
@@ -35,7 +36,6 @@ import 'package:PiliPlus/utils/platform_utils.dart';
import 'package:PiliPlus/utils/request_utils.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:expandable/expandable.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
@@ -639,7 +639,7 @@ class _UgcIntroPanelState extends State<UgcIntroPanel> {
TextSpan(
text: matchStr,
style: TextStyle(color: theme.colorScheme.primary),
recognizer: TapGestureRecognizer()
recognizer: NoDeadlineTapGestureRecognizer()
..onTap = () async {
if (videoDetailCtr
.plPlayerController
@@ -702,7 +702,7 @@ class _UgcIntroPanelState extends State<UgcIntroPanel> {
TextSpan(
text: matchStr,
style: TextStyle(color: theme.colorScheme.primary),
recognizer: TapGestureRecognizer()
recognizer: NoDeadlineTapGestureRecognizer()
..onTap = () => PiliScheme.videoPush(aid, null),
),
);
@@ -716,7 +716,7 @@ class _UgcIntroPanelState extends State<UgcIntroPanel> {
TextSpan(
text: matchStr,
style: TextStyle(color: theme.colorScheme.primary),
recognizer: TapGestureRecognizer()
recognizer: NoDeadlineTapGestureRecognizer()
..onTap = () => PiliScheme.videoPush(null, matchStr),
),
);
@@ -728,7 +728,7 @@ class _UgcIntroPanelState extends State<UgcIntroPanel> {
TextSpan(
text: matchStr,
style: TextStyle(color: theme.colorScheme.primary),
recognizer: TapGestureRecognizer()
recognizer: NoDeadlineTapGestureRecognizer()
..onTap = () {
try {
Get.find<VideoDetailController>(
@@ -757,7 +757,7 @@ class _UgcIntroPanelState extends State<UgcIntroPanel> {
return TextSpan(
text: '@${currentDesc.rawText}',
style: TextStyle(color: colorSchemePrimary),
recognizer: TapGestureRecognizer()
recognizer: NoDeadlineTapGestureRecognizer()
..onTap = () => Get.toNamed('/member?mid=${currentDesc.bizId}'),
);
default:

View File

@@ -4,6 +4,7 @@ import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/common/widgets/badge.dart';
import 'package:PiliPlus/common/widgets/dialog/report.dart';
import 'package:PiliPlus/common/widgets/flutter/text/text.dart' as custom_text;
import 'package:PiliPlus/common/widgets/gesture/tap_gesture_recognizer.dart';
import 'package:PiliPlus/common/widgets/image/custom_grid_view.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
import 'package:PiliPlus/common/widgets/pendant_avatar.dart';
@@ -33,7 +34,6 @@ import 'package:PiliPlus/utils/utils.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:fixnum/fixnum.dart';
import 'package:flutter/foundation.dart' show kDebugMode;
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
@@ -483,7 +483,7 @@ class ReplyItemGrpc extends StatelessWidget {
style: TextStyle(
color: theme.colorScheme.primary,
),
recognizer: TapGestureRecognizer()
recognizer: NoDeadlineTapGestureRecognizer()
..onTap = () {
feedBack();
Get.toNamed(
@@ -616,7 +616,7 @@ class ReplyItemGrpc extends StatelessWidget {
style: TextStyle(
color: theme.colorScheme.primary,
),
recognizer: TapGestureRecognizer()
recognizer: NoDeadlineTapGestureRecognizer()
..onTap = () {
if (url.appUrlSchema.isEmpty) {
if (RegExp(
@@ -695,7 +695,7 @@ class ReplyItemGrpc extends StatelessWidget {
TextSpan(
text: matchStr,
style: TextStyle(color: theme.colorScheme.primary),
recognizer: TapGestureRecognizer()
recognizer: NoDeadlineTapGestureRecognizer()
..onTap = () =>
Get.toNamed('/member?mid=${content.atNameToMid[name]}'),
),
@@ -705,7 +705,7 @@ class ReplyItemGrpc extends StatelessWidget {
TextSpan(
text: '投票: ${content.vote.title}',
style: TextStyle(color: theme.colorScheme.primary),
recognizer: TapGestureRecognizer()
recognizer: NoDeadlineTapGestureRecognizer()
..onTap = () =>
showVoteDialog(context, content.vote.id.toInt()),
),
@@ -730,7 +730,7 @@ class ReplyItemGrpc extends StatelessWidget {
? TextStyle(color: theme.colorScheme.primary)
: null,
recognizer: isValid
? (TapGestureRecognizer()
? (NoDeadlineTapGestureRecognizer()
..onTap = () {
// 跳转到指定位置
try {
@@ -761,7 +761,7 @@ class ReplyItemGrpc extends StatelessWidget {
TextSpan(
text: matchStr,
style: TextStyle(color: theme.colorScheme.primary),
recognizer: TapGestureRecognizer()
recognizer: NoDeadlineTapGestureRecognizer()
..onTap = () {
Get.toNamed(
'/searchResult',
@@ -775,7 +775,7 @@ class ReplyItemGrpc extends StatelessWidget {
TextSpan(
text: matchStr,
style: TextStyle(color: theme.colorScheme.primary),
recognizer: TapGestureRecognizer()
recognizer: NoDeadlineTapGestureRecognizer()
..onTap = () => PageUtils.handleWebview(matchStr),
),
);
@@ -816,7 +816,7 @@ class ReplyItemGrpc extends StatelessWidget {
: theme.colorScheme.secondary,
),
recognizer: hasClickUrl
? (TapGestureRecognizer()
? (NoDeadlineTapGestureRecognizer()
..onTap = () =>
PageUtils.handleWebview(content.richText.note.clickUrl))
: null,