From 134bfd43ffe72785ec39bb06270f4a63376b986d Mon Sep 17 00:00:00 2001 From: bggRGjQaUbCoE Date: Sun, 30 Mar 2025 21:14:07 +0800 Subject: [PATCH] opt: video: charged badge Signed-off-by: bggRGjQaUbCoE --- lib/common/widgets/badge.dart | 9 ++-- .../widgets/video_card_h_member_video.dart | 3 ++ lib/pages/dynamics/widgets/video_panel.dart | 1 + .../member_contribute/member_contribute.dart | 48 ++++++++++--------- 4 files changed, 35 insertions(+), 26 deletions(-) diff --git a/lib/common/widgets/badge.dart b/lib/common/widgets/badge.dart index b889093f..a27e895e 100644 --- a/lib/common/widgets/badge.dart +++ b/lib/common/widgets/badge.dart @@ -42,15 +42,16 @@ class PBadge extends StatelessWidget { if (type == 'gray') { bgColor = Colors.black54.withOpacity(0.4); color = Colors.white; - } - if (type == 'color') { + } else if (type == 'color') { bgColor = t.secondaryContainer.withOpacity(0.5); color = t.onSecondaryContainer; - } - if (type == 'line') { + } else if (type == 'line') { bgColor = Colors.transparent; color = t.primary; borderColor = t.primary; + } else if (type == 'error') { + bgColor = t.error; + color = t.onError; } EdgeInsets paddingStyle = diff --git a/lib/common/widgets/video_card_h_member_video.dart b/lib/common/widgets/video_card_h_member_video.dart index 7f766af2..9aa364eb 100644 --- a/lib/common/widgets/video_card_h_member_video.dart +++ b/lib/common/widgets/video_card_h_member_video.dart @@ -110,6 +110,9 @@ class VideoCardHMemberVideo extends StatelessWidget { .join('|'), right: 6.0, top: 6.0, + type: videoItem.badges!.first.text == '充电专属' + ? 'error' + : 'primary', ), if (videoItem.history != null) ...[ Builder(builder: (context) { diff --git a/lib/pages/dynamics/widgets/video_panel.dart b/lib/pages/dynamics/widgets/video_panel.dart index f3af5f36..29fa4dca 100644 --- a/lib/pages/dynamics/widgets/video_panel.dart +++ b/lib/pages/dynamics/widgets/video_panel.dart @@ -72,6 +72,7 @@ Widget videoSeasonWidget(item, context, type, {floor = 1}) { right: 10.0, bottom: null, left: null, + type: content.badge['text'] == '充电专属' ? 'error' : 'primary', ), Positioned( left: 0, diff --git a/lib/pages/member/new/content/member_contribute/member_contribute.dart b/lib/pages/member/new/content/member_contribute/member_contribute.dart index 14808e94..0e5b01d3 100644 --- a/lib/pages/member/new/content/member_contribute/member_contribute.dart +++ b/lib/pages/member/new/content/member_contribute/member_contribute.dart @@ -43,29 +43,33 @@ class _MemberContributeState extends State return _controller.tabs != null ? Column( children: [ - TabBar( - overlayColor: WidgetStateProperty.all(Colors.transparent), - splashFactory: NoSplash.splashFactory, - padding: const EdgeInsets.symmetric(horizontal: 8), - isScrollable: true, - tabs: _controller.tabs!, - tabAlignment: TabAlignment.start, - controller: _controller.tabController, - dividerHeight: 0, - indicatorWeight: 0, - indicatorPadding: - const EdgeInsets.symmetric(horizontal: 3, vertical: 8), - indicator: BoxDecoration( - color: Theme.of(context).colorScheme.secondaryContainer, - borderRadius: BorderRadius.circular(20), + SizedBox( + width: double.infinity, + child: TabBar( + overlayColor: WidgetStateProperty.all(Colors.transparent), + splashFactory: NoSplash.splashFactory, + padding: const EdgeInsets.symmetric(horizontal: 8), + isScrollable: true, + tabs: _controller.tabs!, + tabAlignment: TabAlignment.start, + controller: _controller.tabController, + dividerHeight: 0, + indicatorWeight: 0, + indicatorPadding: + const EdgeInsets.symmetric(horizontal: 3, vertical: 8), + indicator: BoxDecoration( + color: Theme.of(context).colorScheme.secondaryContainer, + borderRadius: BorderRadius.circular(20), + ), + indicatorSize: TabBarIndicatorSize.tab, + labelStyle: TabBarTheme.of(context) + .labelStyle + ?.copyWith(fontSize: 14) ?? + const TextStyle(fontSize: 14), + labelColor: + Theme.of(context).colorScheme.onSecondaryContainer, + unselectedLabelColor: Theme.of(context).colorScheme.outline, ), - indicatorSize: TabBarIndicatorSize.tab, - labelStyle: TabBarTheme.of(context) - .labelStyle - ?.copyWith(fontSize: 14) ?? - const TextStyle(fontSize: 14), - labelColor: Theme.of(context).colorScheme.onSecondaryContainer, - unselectedLabelColor: Theme.of(context).colorScheme.outline, ), Expanded( child: TabBarView(