replace SelectableText with SelectionArea

Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-07-20 13:38:56 +08:00
parent 4ce32b8698
commit 0c73e01013
26 changed files with 406 additions and 300 deletions

View File

@@ -1,6 +1,7 @@
import 'package:PiliPlus/common/widgets/flutter/page/tabs.dart';
import 'package:PiliPlus/common/widgets/keep_alive_wrapper.dart';
import 'package:PiliPlus/common/widgets/scroll_physics.dart';
import 'package:PiliPlus/common/widgets/selection_text.dart';
import 'package:PiliPlus/common/widgets/stat/stat.dart';
import 'package:PiliPlus/models/common/stat_type.dart';
import 'package:PiliPlus/models_new/pgc/pgc_info_model/result.dart';
@@ -126,10 +127,9 @@ class _IntroDetailState extends State<PgcIntroPanel>
bottom: MediaQuery.viewPaddingOf(context).bottom + 100,
),
children: [
SelectableText(
SelectionText(
widget.item.title!,
style: const TextStyle(fontSize: 16),
scrollPhysics: const NeverSelectableScrollPhysics(),
),
const SizedBox(height: 4),
Row(
@@ -171,10 +171,9 @@ class _IntroDetailState extends State<PgcIntroPanel>
style: theme.textTheme.titleMedium,
),
const SizedBox(height: 4),
SelectableText(
SelectionText(
widget.item.evaluate!,
style: textStyle,
scrollPhysics: const NeverSelectableScrollPhysics(),
),
],
if (widget.item.actors?.isNotEmpty == true) ...[

View File

@@ -8,7 +8,8 @@ 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'
show ReloadScrollPhysics, NeverSelectableScrollPhysics;
show ReloadScrollPhysics;
import 'package:PiliPlus/common/widgets/selection_text.dart';
import 'package:PiliPlus/common/widgets/stat/stat.dart';
import 'package:PiliPlus/common/widgets/translucent_column.dart';
import 'package:PiliPlus/http/sponsor_block.dart';
@@ -284,10 +285,9 @@ class _UgcIntroPanelState extends State<UgcIntroPanel> {
),
if (videoDetail.descV2 case final descV2? when descV2.isNotEmpty) ...[
const SizedBox(height: 8),
SelectableText.rich(
SelectionText.rich(
buildDesc(descV2),
style: const TextStyle(height: 1.4),
scrollPhysics: const NeverSelectableScrollPhysics(),
),
],
NoTranslucentArea(
@@ -409,10 +409,9 @@ class _UgcIntroPanelState extends State<UgcIntroPanel> {
],
);
if (isSelectable) {
return SelectableText.rich(
return SelectionText.rich(
textSpan,
style: const TextStyle(fontSize: 16),
scrollPhysics: const NeverSelectableScrollPhysics(),
);
}
return Text.rich(

View File

@@ -13,8 +13,7 @@ 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/image_grid/image_grid_view.dart';
import 'package:PiliPlus/common/widgets/pendant_avatar.dart';
import 'package:PiliPlus/common/widgets/scroll_physics.dart'
show ClampingScrollPhysicsExt;
import 'package:PiliPlus/common/widgets/selection_text.dart';
import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart'
show ReplyInfo, ReplyControl, Content, Url, ReplyControl_VoteOption, Emote;
import 'package:PiliPlus/grpc/reply.dart';
@@ -36,9 +35,9 @@ import 'package:PiliPlus/utils/danmaku_utils.dart';
import 'package:PiliPlus/utils/date_utils.dart';
import 'package:PiliPlus/utils/duration_utils.dart';
import 'package:PiliPlus/utils/extension/context_ext.dart';
import 'package:PiliPlus/utils/extension/editable_text_ext.dart';
import 'package:PiliPlus/utils/extension/iterable_ext.dart';
import 'package:PiliPlus/utils/extension/num_ext.dart';
import 'package:PiliPlus/utils/extension/selectable_region_ext.dart';
import 'package:PiliPlus/utils/extension/theme_ext.dart';
import 'package:PiliPlus/utils/feed_back.dart';
import 'package:PiliPlus/utils/global_data.dart';