diff --git a/lib/pages/article/widgets/opus_content.dart b/lib/pages/article/widgets/opus_content.dart index 947ec1c55..5975b5973 100644 --- a/lib/pages/article/widgets/opus_content.dart +++ b/lib/pages/article/widgets/opus_content.dart @@ -1,6 +1,5 @@ import 'dart:math' as math; -import 'package:PiliPlus/common/widgets/gesture/immediate_tap_gesture_recognizer.dart'; import 'package:PiliPlus/common/widgets/image/cached_network_svg_image.dart'; import 'package:PiliPlus/common/widgets/image/custom_grid_view.dart'; import 'package:PiliPlus/common/widgets/image/network_img_layer.dart'; @@ -19,6 +18,7 @@ import 'package:PiliPlus/utils/image_utils.dart'; import 'package:PiliPlus/utils/page_utils.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/foundation.dart' show kDebugMode; +import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:get/get_core/src/get_main.dart'; import 'package:get/get_navigation/src/extension_navigation.dart'; @@ -69,7 +69,7 @@ class OpusContent extends StatelessWidget { ? null : colorScheme.primary, ), - recognizer: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..onTap = () { switch (rich.type) { case 'RICH_TEXT_NODE_TYPE_AT': @@ -293,7 +293,7 @@ class OpusContent extends StatelessWidget { return TextSpan( text: '${hasUrl ? '\u{1F517}' : ''}$text', recognizer: hasUrl - ? (ImmediateTapGestureRecognizer() + ? (TapGestureRecognizer() ..onTap = () => PiliScheme.routePushFromUrl(jumpUrl)) : null, diff --git a/lib/pages/audio/view.dart b/lib/pages/audio/view.dart index ec02c8f18..13f4a00d5 100644 --- a/lib/pages/audio/view.dart +++ b/lib/pages/audio/view.dart @@ -3,7 +3,6 @@ import 'dart:math' show min; import 'package:PiliPlus/common/constants.dart'; import 'package:PiliPlus/common/widgets/button/icon_button.dart'; import 'package:PiliPlus/common/widgets/flutter/refresh_indicator.dart'; -import 'package:PiliPlus/common/widgets/gesture/immediate_tap_gesture_recognizer.dart'; import 'package:PiliPlus/common/widgets/image/network_img_layer.dart'; import 'package:PiliPlus/common/widgets/progress_bar/audio_video_progress_bar.dart'; import 'package:PiliPlus/grpc/bilibili/app/listener/v1.pb.dart'; @@ -25,6 +24,7 @@ import 'package:PiliPlus/utils/platform_utils.dart'; import 'package:PiliPlus/utils/storage.dart'; import 'package:PiliPlus/utils/storage_key.dart'; import 'package:PiliPlus/utils/utils.dart'; +import 'package:flutter/gestures.dart' show TapGestureRecognizer; import 'package:flutter/material.dart' hide DraggableScrollableSheet; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:get/get.dart'; @@ -920,7 +920,7 @@ class _AudioPageState extends State { TextSpan( text: audioItem.arc.displayedOid, style: TextStyle(color: colorScheme.secondary), - recognizer: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..onTap = () => Utils.copyText( audioItem.arc.displayedOid, ), diff --git a/lib/pages/common/publish/common_rich_text_pub_page.dart b/lib/pages/common/publish/common_rich_text_pub_page.dart index a870d69d7..a58ba271f 100644 --- a/lib/pages/common/publish/common_rich_text_pub_page.dart +++ b/lib/pages/common/publish/common_rich_text_pub_page.dart @@ -60,16 +60,11 @@ abstract class CommonRichTextPubPageState late final RichTextEditingController editController; @override - void initState() { - super.initState(); + void initPubState() { editController = RichTextEditingController( items: widget.items, onMention: onMention, ); - } - - @override - void initPubState() { if (editController.rawText.trim().isNotEmpty) { enablePublish.value = true; } diff --git a/lib/pages/common/publish/common_text_pub_page.dart b/lib/pages/common/publish/common_text_pub_page.dart index 8df92f18b..0cb789ff1 100644 --- a/lib/pages/common/publish/common_text_pub_page.dart +++ b/lib/pages/common/publish/common_text_pub_page.dart @@ -15,14 +15,11 @@ abstract class CommonTextPubPageState @override late final TextEditingController editController; - @override - void initState() { - super.initState(); - editController = TextEditingController(text: widget.initialValue); - } - @override void initPubState() { + editController = TextEditingController( + text: widget.initialValue, + ); if (widget.initialValue?.trim().isNotEmpty == true) { enablePublish.value = true; } diff --git a/lib/pages/dynamics/widgets/additional_panel.dart b/lib/pages/dynamics/widgets/additional_panel.dart index 341ea0cfa..83f8aff68 100644 --- a/lib/pages/dynamics/widgets/additional_panel.dart +++ b/lib/pages/dynamics/widgets/additional_panel.dart @@ -1,6 +1,5 @@ import 'package:PiliPlus/common/constants.dart'; import 'package:PiliPlus/common/widgets/flutter/dyn/ink_well.dart'; -import 'package:PiliPlus/common/widgets/gesture/immediate_tap_gesture_recognizer.dart'; import 'package:PiliPlus/common/widgets/image/network_img_layer.dart'; import 'package:PiliPlus/http/dynamics.dart'; import 'package:PiliPlus/http/loading_state.dart'; @@ -9,6 +8,7 @@ import 'package:PiliPlus/pages/dynamics/widgets/vote.dart'; import 'package:PiliPlus/utils/app_scheme.dart'; import 'package:PiliPlus/utils/num_utils.dart'; import 'package:flutter/foundation.dart' show kDebugMode; +import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart' hide InkWell; import 'package:get/get.dart'; @@ -125,7 +125,7 @@ Widget addWidget( ), recognizer: reserve.desc3!.jumpUrl == null ? null - : (ImmediateTapGestureRecognizer() + : (TapGestureRecognizer() ..onTap = () { Get.toNamed( '/webview', @@ -261,7 +261,7 @@ Widget addWidget( ), recognizer: content.desc!.jumpUrl == null ? null - : (ImmediateTapGestureRecognizer() + : (TapGestureRecognizer() ..onTap = () { Get.toNamed( '/webview', diff --git a/lib/pages/dynamics/widgets/interaction.dart b/lib/pages/dynamics/widgets/interaction.dart index a7a3a2a5f..26c5f2af1 100644 --- a/lib/pages/dynamics/widgets/interaction.dart +++ b/lib/pages/dynamics/widgets/interaction.dart @@ -1,6 +1,6 @@ -import 'package:PiliPlus/common/widgets/gesture/immediate_tap_gesture_recognizer.dart'; import 'package:PiliPlus/models/dynamics/result.dart'; import 'package:flutter/foundation.dart' show kDebugMode; +import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:get/get_core/src/get_main.dart'; @@ -78,7 +78,7 @@ Widget _item( ? null : TextStyle(color: theme.colorScheme.onSurfaceVariant), recognizer: isAt - ? (ImmediateTapGestureRecognizer() + ? (TapGestureRecognizer() ..onTap = () => Get.toNamed('/member?mid=${e.rid}')) : null, ); diff --git a/lib/pages/dynamics/widgets/rich_node_panel.dart b/lib/pages/dynamics/widgets/rich_node_panel.dart index 1f886f3ec..307f053cf 100644 --- a/lib/pages/dynamics/widgets/rich_node_panel.dart +++ b/lib/pages/dynamics/widgets/rich_node_panel.dart @@ -1,6 +1,5 @@ import 'dart:io' show Platform; -import 'package:PiliPlus/common/widgets/gesture/immediate_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/http/dynamics.dart'; @@ -13,6 +12,7 @@ import 'package:PiliPlus/models/dynamics/result.dart'; import 'package:PiliPlus/pages/dynamics/widgets/vote.dart'; import 'package:PiliPlus/utils/page_utils.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'; @@ -70,7 +70,7 @@ TextSpan? richNode( TextSpan( text: ' ${i.text}', style: style, - recognizer: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..onTap = () => Get.toNamed('/member?mid=${i.rid}'), ), ); @@ -81,7 +81,7 @@ TextSpan? richNode( TextSpan( text: i.origText, style: style, - recognizer: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..onTap = () => Get.toNamed( '/searchResult', parameters: { @@ -113,7 +113,7 @@ TextSpan? richNode( style: style, recognizer: i.origText == null ? null - : (ImmediateTapGestureRecognizer() + : (TapGestureRecognizer() ..onTap = () => PageUtils.handleWebview(i.origText!)), ), ); @@ -135,7 +135,7 @@ TextSpan? richNode( TextSpan( text: '投票:${i.text}', style: style, - recognizer: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..onTap = () { final dynIdStr = item.basic?.commentIdStr; final dynId = dynIdStr != null @@ -177,7 +177,7 @@ TextSpan? richNode( TextSpan( text: '${i.origText} ', style: style, - recognizer: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..onTap = () => Get.toNamed( '/webview', parameters: { @@ -207,7 +207,7 @@ TextSpan? richNode( style: style, recognizer: i.jumpUrl == null ? null - : (ImmediateTapGestureRecognizer() + : (TapGestureRecognizer() ..onTap = () => PageUtils.handleWebview(i.jumpUrl!)), ), ); @@ -229,7 +229,7 @@ TextSpan? richNode( TextSpan( text: '${i.text} ', style: style, - recognizer: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..onTap = () async { try { int? cid = await SearchHttp.ab2c(bvid: i.rid); @@ -272,7 +272,7 @@ TextSpan? richNode( TextSpan( text: i.text, style: style, - recognizer: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..onTap = () { void onView(List list) { PageUtils.imageView( @@ -328,7 +328,7 @@ TextSpan? richNode( style: style, recognizer: i.jumpUrl == null ? null - : (ImmediateTapGestureRecognizer() + : (TapGestureRecognizer() ..onTap = () => PageUtils.handleWebview(i.jumpUrl!)), ), ); @@ -340,7 +340,7 @@ TextSpan? richNode( style: style, recognizer: i.jumpUrl == null ? null - : (ImmediateTapGestureRecognizer() + : (TapGestureRecognizer() ..onTap = () => PageUtils.handleWebview(i.jumpUrl!)), ), ); diff --git a/lib/pages/live_room/widgets/chat_panel.dart b/lib/pages/live_room/widgets/chat_panel.dart index ad24a64f8..19b69c80c 100644 --- a/lib/pages/live_room/widgets/chat_panel.dart +++ b/lib/pages/live_room/widgets/chat_panel.dart @@ -1,5 +1,4 @@ import 'package:PiliPlus/common/widgets/flutter/popup_menu.dart'; -import 'package:PiliPlus/common/widgets/gesture/immediate_tap_gesture_recognizer.dart'; import 'package:PiliPlus/common/widgets/image/network_img_layer.dart'; import 'package:PiliPlus/http/live.dart'; import 'package:PiliPlus/models/common/image_type.dart'; @@ -12,6 +11,7 @@ import 'package:PiliPlus/utils/accounts.dart'; import 'package:PiliPlus/utils/extension/theme_ext.dart'; import 'package:PiliPlus/utils/utils.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'; @@ -84,7 +84,7 @@ class LiveRoomChatPanel extends StatelessWidget { ), recognizer: item.uid == 0 ? null - : (ImmediateTapGestureRecognizer() + : (TapGestureRecognizer() ..onTapUp = (e) => _showMsgMenu( context, itemContext, @@ -99,7 +99,7 @@ class LiveRoomChatPanel extends StatelessWidget { color: primary, fontSize: 14, ), - recognizer: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..onTap = () => Get.toNamed('/member?mid=${reply.mid}'), ), diff --git a/lib/pages/msg_feed_top/sys_msg/view.dart b/lib/pages/msg_feed_top/sys_msg/view.dart index 44f0d660b..850514a4a 100644 --- a/lib/pages/msg_feed_top/sys_msg/view.dart +++ b/lib/pages/msg_feed_top/sys_msg/view.dart @@ -2,7 +2,6 @@ import 'package:PiliPlus/common/skeleton/msg_feed_sys_msg_.dart'; import 'package:PiliPlus/common/widgets/dialog/dialog.dart'; import 'package:PiliPlus/common/widgets/flutter/list_tile.dart'; import 'package:PiliPlus/common/widgets/flutter/refresh_indicator.dart'; -import 'package:PiliPlus/common/widgets/gesture/immediate_tap_gesture_recognizer.dart'; import 'package:PiliPlus/common/widgets/loading_widget/http_error.dart'; import 'package:PiliPlus/http/loading_state.dart'; import 'package:PiliPlus/models_new/msg/msg_sys/data.dart'; @@ -11,6 +10,7 @@ import 'package:PiliPlus/utils/app_scheme.dart'; import 'package:PiliPlus/utils/id_utils.dart'; import 'package:PiliPlus/utils/page_utils.dart'; import 'package:PiliPlus/utils/platform_utils.dart'; +import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart' hide ListTile; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; @@ -145,7 +145,7 @@ class _SysMsgPageState extends State { TextSpan( text: match[1], style: TextStyle(color: theme.colorScheme.primary), - recognizer: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..onTap = () { try { PiliScheme.routePushFromUrl(url); @@ -176,7 +176,7 @@ class _SysMsgPageState extends State { TextSpan( text: match[3], style: TextStyle(color: theme.colorScheme.primary), - recognizer: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..onTap = () { PiliScheme.videoPush(validAv, validBv); }, @@ -195,7 +195,7 @@ class _SysMsgPageState extends State { TextSpan( text: '查看动态', style: TextStyle(color: theme.colorScheme.primary), - recognizer: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..onTap = () { PageUtils.pushDynFromId(id: dynId).catchError( (err) => SmartDialog.showToast(err.toString()), @@ -212,7 +212,7 @@ class _SysMsgPageState extends State { TextSpan( text: '\u{1F517}网页链接', style: TextStyle(color: theme.colorScheme.primary), - recognizer: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..onTap = () { PiliScheme.routePushFromUrl(matchStr); }, diff --git a/lib/pages/video/ai_conclusion/view.dart b/lib/pages/video/ai_conclusion/view.dart index fdb3a4cd2..5eb918a7b 100644 --- a/lib/pages/video/ai_conclusion/view.dart +++ b/lib/pages/video/ai_conclusion/view.dart @@ -1,10 +1,10 @@ -import 'package:PiliPlus/common/widgets/gesture/immediate_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 - ? (ImmediateTapGestureRecognizer() + ? (TapGestureRecognizer() ..onTap = () { try { Get.find( diff --git a/lib/pages/video/introduction/ugc/view.dart b/lib/pages/video/introduction/ugc/view.dart index f9c20984a..773756c3b 100644 --- a/lib/pages/video/introduction/ugc/view.dart +++ b/lib/pages/video/introduction/ugc/view.dart @@ -1,6 +1,5 @@ import 'package:PiliPlus/common/constants.dart'; import 'package:PiliPlus/common/widgets/dialog/dialog.dart'; -import 'package:PiliPlus/common/widgets/gesture/immediate_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'; @@ -36,6 +35,7 @@ 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 { TextSpan( text: matchStr, style: TextStyle(color: theme.colorScheme.primary), - recognizer: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..onTap = () async { if (videoDetailCtr .plPlayerController @@ -702,7 +702,7 @@ class _UgcIntroPanelState extends State { TextSpan( text: matchStr, style: TextStyle(color: theme.colorScheme.primary), - recognizer: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..onTap = () => PiliScheme.videoPush(aid, null), ), ); @@ -716,7 +716,7 @@ class _UgcIntroPanelState extends State { TextSpan( text: matchStr, style: TextStyle(color: theme.colorScheme.primary), - recognizer: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..onTap = () => PiliScheme.videoPush(null, matchStr), ), ); @@ -728,7 +728,7 @@ class _UgcIntroPanelState extends State { TextSpan( text: matchStr, style: TextStyle(color: theme.colorScheme.primary), - recognizer: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..onTap = () { try { Get.find( @@ -757,7 +757,7 @@ class _UgcIntroPanelState extends State { return TextSpan( text: '@${currentDesc.rawText}', style: TextStyle(color: colorSchemePrimary), - recognizer: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..onTap = () => Get.toNamed('/member?mid=${currentDesc.bizId}'), ); default: diff --git a/lib/pages/video/reply/widgets/reply_item_grpc.dart b/lib/pages/video/reply/widgets/reply_item_grpc.dart index 00a38244a..8cdd098ec 100644 --- a/lib/pages/video/reply/widgets/reply_item_grpc.dart +++ b/lib/pages/video/reply/widgets/reply_item_grpc.dart @@ -4,7 +4,6 @@ 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/immediate_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'; @@ -34,6 +33,7 @@ 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: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..onTap = () { feedBack(); Get.toNamed( @@ -616,7 +616,7 @@ class ReplyItemGrpc extends StatelessWidget { style: TextStyle( color: theme.colorScheme.primary, ), - recognizer: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..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: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..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: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..onTap = () => showVoteDialog(context, content.vote.id.toInt()), ), @@ -730,7 +730,7 @@ class ReplyItemGrpc extends StatelessWidget { ? TextStyle(color: theme.colorScheme.primary) : null, recognizer: isValid - ? (ImmediateTapGestureRecognizer() + ? (TapGestureRecognizer() ..onTap = () { // 跳转到指定位置 try { @@ -761,7 +761,7 @@ class ReplyItemGrpc extends StatelessWidget { TextSpan( text: matchStr, style: TextStyle(color: theme.colorScheme.primary), - recognizer: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..onTap = () { Get.toNamed( '/searchResult', @@ -775,7 +775,7 @@ class ReplyItemGrpc extends StatelessWidget { TextSpan( text: matchStr, style: TextStyle(color: theme.colorScheme.primary), - recognizer: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..onTap = () => PageUtils.handleWebview(matchStr), ), ); @@ -816,7 +816,7 @@ class ReplyItemGrpc extends StatelessWidget { : theme.colorScheme.secondary, ), recognizer: hasClickUrl - ? (ImmediateTapGestureRecognizer() + ? (TapGestureRecognizer() ..onTap = () => PageUtils.handleWebview(content.richText.note.clickUrl)) : null, diff --git a/lib/pages/whisper_detail/widget/chat_item.dart b/lib/pages/whisper_detail/widget/chat_item.dart index e0e915cd6..7bd33b15f 100644 --- a/lib/pages/whisper_detail/widget/chat_item.dart +++ b/lib/pages/whisper_detail/widget/chat_item.dart @@ -3,7 +3,6 @@ import 'dart:math'; import 'package:PiliPlus/common/constants.dart'; import 'package:PiliPlus/common/widgets/badge.dart'; -import 'package:PiliPlus/common/widgets/gesture/immediate_tap_gesture_recognizer.dart'; import 'package:PiliPlus/common/widgets/image/network_img_layer.dart'; import 'package:PiliPlus/grpc/bilibili/im/interfaces/v1.pb.dart' show EmotionInfo; @@ -20,6 +19,7 @@ import 'package:PiliPlus/utils/id_utils.dart'; import 'package:PiliPlus/utils/image_utils.dart'; import 'package:PiliPlus/utils/page_utils.dart'; import 'package:cached_network_image/cached_network_image.dart'; +import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; @@ -663,7 +663,7 @@ class ChatItem extends StatelessWidget { TextSpan( text: matchStr, style: style.copyWith(color: theme.colorScheme.primary), - recognizer: ImmediateTapGestureRecognizer() + recognizer: TapGestureRecognizer() ..onTap = () => PiliScheme.routePushFromUrl(matchStr), ), );