fix(home): 调整首页分类与卡片标签样式

This commit is contained in:
Zhou Weidong committed 2026-10-22 18:22:05 +08:00
1 parent 7446431511
commit 4f6116896f
14 files changed
+251 -117

No files matched your search

+11 -23
View File
@@ -5,6 +5,7 @@ import 'package:flutter/material.dart';
import '../../core/formatting/count_format.dart';
import '../../core/theme/app_colors.dart';
import '../../core/theme/app_dimens.dart';
import '../../core/widgets/drama_genre_ribbon.dart';
import '../../core/widgets/remote_image.dart';
class FollowingGridCard extends StatelessWidget {
@@ -37,7 +38,7 @@ class FollowingGridCard extends StatelessWidget {
Widget build(BuildContext context) {
return InkWell(
key: Key('following-card-$dramaId'),
borderRadius: BorderRadius.circular(AppDimens.homeCardRadius),
borderRadius: BorderRadius.circular(AppDimens.cardCoverRadius),
onTap: onTap,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
@@ -52,7 +53,7 @@ class FollowingGridCard extends StatelessWidget {
Positioned.fill(
child: ClipRRect(
borderRadius: BorderRadius.circular(
AppDimens.homeCardRadius,
AppDimens.cardCoverRadius,
),
child: RemoteImage(
posterUrl,
@@ -78,12 +79,12 @@ class FollowingGridCard extends StatelessWidget {
mainAxisSize: MainAxisSize.min,
children: [
const Icon(
Icons.play_arrow_rounded,
Icons.auto_awesome_rounded,
color: AppColors.textPrimary,
size: AppDimens.cardViewsIcon,
),
Text(
formatInteractionCount(viewCount),
formatPlayCount(viewCount),
key: Key('following-views-$dramaId'),
style: const TextStyle(
color: AppColors.textPrimary,
@@ -94,6 +95,12 @@ class FollowingGridCard extends StatelessWidget {
),
),
),
if (!editing)
Positioned(
top: 0,
right: 0,
child: DramaGenreRibbon(tags: tags, keyPrefix: dramaId),
),
if (editing)
Positioned(
top: -6,
@@ -128,10 +135,6 @@ class FollowingGridCard extends StatelessWidget {
height: AppDimens.cardTitleLineHeight,
),
),
if (tags.isNotEmpty) ...[
const SizedBox(height: AppDimens.cardTitleTagGap),
_tags(),
],
const SizedBox(height: AppDimens.spaceXs),
Text(
subtitle,
@@ -161,19 +164,4 @@ class FollowingGridCard extends StatelessWidget {
),
);
}
Widget _tags() {
final visible = tags.take(3).toList(growable: false);
return Text(
visible.join(' | '),
key: Key('following-tags-$dramaId'),
maxLines: 1,
overflow: TextOverflow.ellipsis,
textAlign: TextAlign.left,
style: const TextStyle(
color: AppColors.textTertiary,
fontSize: AppDimens.cardTagFont,
),
);
}
}
+1 -1
View File
@@ -339,7 +339,7 @@ List<String> _dramaTags(Drama? drama) {
.expand((value) => value.split(_tagSplitter))
.map((value) => value.trim())
.where((value) => value.isNotEmpty && seen.add(value))
.take(2)
.take(3)
.toList(growable: false);
}