From ba0ce2f8c0e5147094b2ea59cd6fe33c7e7f04e4 Mon Sep 17 00:00:00 2001 From: Zhou Weidong <502333560@qq.com> Date: Thu, 22 Oct 2026 18:43:02 +0800 Subject: [PATCH] =?UTF-8?q?fix(home):=20=E4=BF=AE=E5=A4=8D=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=E5=B8=B8=E9=87=8F=E4=B8=8E=E6=B5=8B=E8=AF=95=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/plans/PROGRESS.md | 1 + lib/pages/home/widgets/home_grid_header.dart | 2 +- test/following/following_page_test.dart | 15 +++++++++------ test/home/home_card_style_test.dart | 19 ++++++++----------- test/recommend/recommend_sections_test.dart | 17 +++++++++++------ 5 files changed, 30 insertions(+), 24 deletions(-) diff --git a/docs/plans/PROGRESS.md b/docs/plans/PROGRESS.md index a6d43d8..fef5305 100644 --- a/docs/plans/PROGRESS.md +++ b/docs/plans/PROGRESS.md @@ -1116,4 +1116,5 @@ $ flutter test - 标题下方恢复左对齐题材文字,使用 `|` 分隔、灰色小字,与封面状态角标保持独立。 - 首页搜索栏到一级、一级到二级、二级到网格间距为 8/8/10;非精选 tab 直接以 10 衔接网格。 - 播放量贴封面右下角(底 2、右 6),火焰图标 11 + 12/w400 纯文字,间距 4,并保留极淡底部渐变。 +- 修复二级 chip 运行时颜色误用 `const TextStyle` 的编译错误,并校正相关测试 Finder 类型。 - 全部短剧的地区、字幕、配音筛选 UI 已占位;以下接口待补:地区、字幕/配音筛选数据。 diff --git a/lib/pages/home/widgets/home_grid_header.dart b/lib/pages/home/widgets/home_grid_header.dart index ec0cb8b..e7ca8e0 100644 --- a/lib/pages/home/widgets/home_grid_header.dart +++ b/lib/pages/home/widgets/home_grid_header.dart @@ -366,7 +366,7 @@ class HomeGridHeader extends StatelessWidget { final selected = selectedTag == tag.id; final label = Text( tag.label, - style: const TextStyle( + style: TextStyle( color: selected ? AppColors.navSelected : AppColors.textTertiary, fontSize: AppDimens.homeSecondaryTagFont, fontWeight: FontWeight.w600, diff --git a/test/following/following_page_test.dart b/test/following/following_page_test.dart index b178d7b..ede23ea 100644 --- a/test/following/following_page_test.dart +++ b/test/following/following_page_test.dart @@ -79,9 +79,11 @@ void main() { coverClip.borderRadius, BorderRadius.circular(AppDimens.cardCoverRadius), ); - final title = tester.widget( - find.descendant(of: card, matching: find.text('The Signal')), + final titleFinder = find.descendant( + of: card, + matching: find.text('The Signal'), ); + final title = tester.widget(titleFinder); expect(title.style?.fontSize, AppDimens.cardTitleFont); expect(title.style?.fontWeight, FontWeight.w500); expect(title.style?.height, AppDimens.cardTitleLineHeight); @@ -105,14 +107,15 @@ void main() { ), findsOneWidget, ); - final tags = tester.widget( - find.byKey(const Key('following-tags-the-signal-demo')), + final tagsFinder = find.byKey( + const Key('following-tags-the-signal-demo'), ); + final tags = tester.widget(tagsFinder); expect(tags.data, 'Suspense | Mystery'); expect(tags.style?.fontSize, AppDimens.cardTagFont); expect(tags.style?.color, AppColors.textTertiary); - expect(tester.getTopLeft(title).dx, tester.getTopLeft(coverFinder).dx); - expect(tester.getTopLeft(tags).dx, tester.getTopLeft(cover).dx); + expect(tester.getTopLeft(titleFinder).dx, tester.getTopLeft(coverFinder).dx); + expect(tester.getTopLeft(tagsFinder).dx, tester.getTopLeft(coverFinder).dx); await tester.tap(find.byKey(const Key('following-edit'))); await tester.pumpAndSettle(); diff --git a/test/home/home_card_style_test.dart b/test/home/home_card_style_test.dart index 12e0dcb..551cfd0 100644 --- a/test/home/home_card_style_test.dart +++ b/test/home/home_card_style_test.dart @@ -80,10 +80,7 @@ void main() { expect(viewsText.style?.fontSize, AppDimens.cardPlayCountFont); expect(viewsText.style?.fontWeight, FontWeight.w400); expect(viewsText.style?.color, AppColors.navSelected); - expect( - find.descendant(of: cover, matching: find.byKey(views)), - findsOneWidget, - ); + expect(find.descendant(of: cover, matching: views), findsOneWidget); expect( tester.getTopRight(cover).dx - tester.getTopRight(views).dx, AppDimens.cardPlayCountRight, @@ -103,21 +100,21 @@ void main() { ), findsOneWidget, ); - final title = tester.widget( - find.byKey(const Key('home-feed-title-anime-card')), + final titleFinder = find.byKey( + const Key('home-feed-title-anime-card'), ); + final title = tester.widget(titleFinder); expect(title.maxLines, 2); expect(title.style?.fontSize, AppDimens.cardTitleFont); expect(title.style?.fontWeight, FontWeight.w500); expect(title.style?.height, AppDimens.cardTitleLineHeight); - final tags = tester.widget( - find.byKey(const Key('home-feed-tags-anime-card')), - ); + final tagsFinder = find.byKey(const Key('home-feed-tags-anime-card')); + final tags = tester.widget(tagsFinder); expect(tags.data, 'Romance | Urban'); expect(tags.style?.fontSize, AppDimens.cardTagFont); expect(tags.style?.color, AppColors.textTertiary); - expect(tester.getTopLeft(title).dx, tester.getTopLeft(cover).dx); - expect(tester.getTopLeft(tags).dx, tester.getTopLeft(cover).dx); + expect(tester.getTopLeft(titleFinder).dx, tester.getTopLeft(cover).dx); + expect(tester.getTopLeft(tagsFinder).dx, tester.getTopLeft(cover).dx); await tester.tap(card); expect(taps, 1); diff --git a/test/recommend/recommend_sections_test.dart b/test/recommend/recommend_sections_test.dart index e2b372c..4f7e973 100644 --- a/test/recommend/recommend_sections_test.dart +++ b/test/recommend/recommend_sections_test.dart @@ -98,9 +98,10 @@ void main() { ); final cover = tester.widget(coverFinder); expect(cover.aspectRatio, AppDimens.cardCoverAspectRatio); - final cardTitle = tester.widget( - find.byKey(const Key('recommend-title-hits-the-signal-demo')), + final cardTitleFinder = find.byKey( + const Key('recommend-title-hits-the-signal-demo'), ); + final cardTitle = tester.widget(cardTitleFinder); expect(cardTitle.style?.fontSize, AppDimens.cardTitleFont); expect(cardTitle.style?.fontWeight, FontWeight.w500); expect(cardTitle.style?.height, AppDimens.cardTitleLineHeight); @@ -135,14 +136,18 @@ void main() { expect(badgeText.data, 'Hit'); expect(badgeText.style?.fontSize, AppDimens.cardBadgeFont); expect(badgeText.style?.color, AppColors.textPrimary); - final tags = tester.widget( - find.byKey(const Key('recommend-tags-hits-the-signal-demo')), + final tagsFinder = find.byKey( + const Key('recommend-tags-hits-the-signal-demo'), ); + final tags = tester.widget(tagsFinder); expect(tags.data, 'Suspense | Mystery'); expect(tags.style?.fontSize, AppDimens.cardTagFont); expect(tags.style?.color, AppColors.textTertiary); - expect(tester.getTopLeft(cardTitle).dx, tester.getTopLeft(coverFinder).dx); - expect(tester.getTopLeft(tags).dx, tester.getTopLeft(cover).dx); + expect( + tester.getTopLeft(cardTitleFinder).dx, + tester.getTopLeft(coverFinder).dx, + ); + expect(tester.getTopLeft(tagsFinder).dx, tester.getTopLeft(coverFinder).dx); }); testWidgets('should_switch_inner_tabs_without_losing_grid_filter_state', (