Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-05-19 20:09:49 +08:00
parent e4654d63c3
commit a2da381f1a
6 changed files with 81 additions and 19 deletions

Binary file not shown.

View File

@@ -0,0 +1,29 @@
// ignore_for_file: constant_identifier_names
import 'package:flutter/widgets.dart';
class CustomIcon {
static const _kFontFam = 'custom_icon';
static const IconData coin = IconData(0xe800, fontFamily: _kFontFam);
static const IconData dm_off = IconData(0xe801, fontFamily: _kFontFam);
static const IconData dm_on = IconData(0xe802, fontFamily: _kFontFam);
static const IconData dm_settings = IconData(0xe803, fontFamily: _kFontFam);
static const IconData dyn = IconData(0xe804, fontFamily: _kFontFam);
static const IconData fav = IconData(0xe805, fontFamily: _kFontFam);
static const IconData share = IconData(0xe806, fontFamily: _kFontFam);
static const IconData share_line = IconData(0xe807, fontFamily: _kFontFam);
static const IconData share_node = IconData(0xe808, fontFamily: _kFontFam);
static const IconData star_favorite_line =
IconData(0xe809, fontFamily: _kFontFam);
static const IconData thumbs_down = IconData(0xe80a, fontFamily: _kFontFam);
static const IconData thumbs_down_outline =
IconData(0xe80b, fontFamily: _kFontFam);
static const IconData thumbs_up = IconData(0xe80c, fontFamily: _kFontFam);
static const IconData thumbs_up_line =
IconData(0xe80d, fontFamily: _kFontFam);
static const IconData thumbs_up_outline =
IconData(0xe80e, fontFamily: _kFontFam);
static const IconData topic_tag = IconData(0xe80f, fontFamily: _kFontFam);
static const IconData watch_later = IconData(0xe810, fontFamily: _kFontFam);
}

View File

@@ -1,4 +1,5 @@
// 内容 // 内容
import 'package:PiliPlus/common/widgets/custom_icon.dart';
import 'package:PiliPlus/common/widgets/image/image_view.dart'; import 'package:PiliPlus/common/widgets/image/image_view.dart';
import 'package:PiliPlus/models/dynamics/result.dart'; import 'package:PiliPlus/models/dynamics/result.dart';
import 'package:PiliPlus/pages/dynamics/widgets/rich_node_panel.dart'; import 'package:PiliPlus/pages/dynamics/widgets/rich_node_panel.dart';
@@ -44,7 +45,7 @@ Widget content(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
if (item.modules.moduleDynamic?.topic != null) ...[ if (item.modules.moduleDynamic?.topic != null)
GestureDetector( GestureDetector(
onTap: () { onTap: () {
Get.toNamed( Get.toNamed(
@@ -55,15 +56,29 @@ Widget content(
}, },
); );
}, },
child: Text( child: Text.rich(
'#${item.modules.moduleDynamic!.topic!.name}', TextSpan(
children: [
WidgetSpan(
alignment: PlaceholderAlignment.middle,
child: Padding(
padding: const EdgeInsets.only(right: 4),
child: Icon(
size: 18,
CustomIcon.topic_tag,
color: theme.colorScheme.primary,
),
),
),
TextSpan(text: item.modules.moduleDynamic!.topic!.name),
],
),
style: TextStyle( style: TextStyle(
fontSize: source == 'detail' && !isSave ? 16 : 15, fontSize: source == 'detail' && !isSave ? 16 : 15,
color: theme.colorScheme.primary, color: theme.colorScheme.primary,
), ),
), ),
), ),
],
if (richNodes != null) if (richNodes != null)
source == 'detail' source == 'detail'
? SelectableText.rich( ? SelectableText.rich(

View File

@@ -1,5 +1,6 @@
// 转发 // 转发
import 'package:PiliPlus/common/widgets/badge.dart'; import 'package:PiliPlus/common/widgets/badge.dart';
import 'package:PiliPlus/common/widgets/custom_icon.dart';
import 'package:PiliPlus/common/widgets/image/image_save.dart'; import 'package:PiliPlus/common/widgets/image/image_save.dart';
import 'package:PiliPlus/common/widgets/image/image_view.dart'; import 'package:PiliPlus/common/widgets/image/image_view.dart';
import 'package:PiliPlus/common/widgets/image/network_img_layer.dart'; import 'package:PiliPlus/common/widgets/image/network_img_layer.dart';
@@ -92,8 +93,8 @@ Widget forWard(
), ),
], ],
), ),
const SizedBox(height: 2), const SizedBox(height: 5),
if (item.modules.moduleDynamic?.topic != null) if (item.modules.moduleDynamic?.topic != null) ...[
GestureDetector( GestureDetector(
onTap: () { onTap: () {
Get.toNamed( Get.toNamed(
@@ -104,11 +105,28 @@ Widget forWard(
}, },
); );
}, },
child: Text( child: Text.rich(
'#${item.modules.moduleDynamic!.topic!.name}', TextSpan(
children: [
WidgetSpan(
alignment: PlaceholderAlignment.bottom,
child: Padding(
padding: const EdgeInsets.only(right: 4),
child: Icon(
size: 18,
CustomIcon.topic_tag,
color: theme.colorScheme.primary,
),
),
),
TextSpan(text: item.modules.moduleDynamic!.topic!.name),
],
),
style: TextStyle(color: theme.colorScheme.primary), style: TextStyle(color: theme.colorScheme.primary),
), ),
), ),
const SizedBox(height: 5),
],
if (richNodes != null) if (richNodes != null)
Text.rich( Text.rich(
richNodes, richNodes,

View File

@@ -4,6 +4,7 @@ import 'dart:math';
import 'dart:ui'; import 'dart:ui';
import 'package:PiliPlus/common/constants.dart'; import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/common/widgets/custom_icon.dart';
import 'package:PiliPlus/common/widgets/scroll_physics.dart'; import 'package:PiliPlus/common/widgets/scroll_physics.dart';
import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart' import 'package:PiliPlus/grpc/bilibili/main/community/reply/v1.pb.dart'
show ReplyInfo; show ReplyInfo;
@@ -56,7 +57,6 @@ import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:flutter_svg/svg.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:hive/hive.dart'; import 'package:hive/hive.dart';
@@ -1590,18 +1590,15 @@ class _VideoDetailPageVState extends State<VideoDetailPageV>
videoDetailController videoDetailController
.plPlayerController.isOpenDanmu.value); .plPlayerController.isOpenDanmu.value);
}, },
icon: SvgPicture.asset( icon: Icon(
videoDetailController videoDetailController
.plPlayerController.isOpenDanmu.value .plPlayerController.isOpenDanmu.value
? 'assets/images/video/danmu_open.svg' ? CustomIcon.dm_on
: 'assets/images/video/danmu_close.svg', : CustomIcon.dm_off,
colorFilter: ColorFilter.mode( color: videoDetailController
videoDetailController .plPlayerController.isOpenDanmu.value
.plPlayerController.isOpenDanmu.value ? themeData.colorScheme.secondary
? themeData.colorScheme.secondary : themeData.colorScheme.outline,
: themeData.colorScheme.outline,
BlendMode.srcIn,
),
), ),
), ),
), ),

View File

@@ -285,6 +285,9 @@ flutter:
- family: digital_id_num - family: digital_id_num
fonts: fonts:
- asset: assets/fonts/digital_id_num.ttf - asset: assets/fonts/digital_id_num.ttf
- family: custom_icon
fonts:
- asset: assets/fonts/custom_icon.ttf
# - family: Jura-Bold # - family: Jura-Bold
# fonts: # fonts:
# - asset: assets/fonts/Jura-Bold.ttf # - asset: assets/fonts/Jura-Bold.ttf