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(