diff --git a/docs/plans/PROGRESS.md b/docs/plans/PROGRESS.md index ceec043..62c1c3e 100644 --- a/docs/plans/PROGRESS.md +++ b/docs/plans/PROGRESS.md @@ -1138,3 +1138,9 @@ $ flutter test - 播放器进度监听改为具名回调,在切换、重建会话和 dispose 时解绑;评论输入弹窗补 controller 更换迁移。 - `_onFeedChanged` 已无源码调用链,报错来源为热重载前注册的旧 tear-off;需完全关闭 App 后冷启动。 - 按当前流程未执行 analyze/test。 + +## 2026-10-22 二级标签筛选按钮右对齐 + +- 三横线热区由 44 宽改为 26×26,消除 44 宽居中盒造成的视觉右边距偏移。 +- 标签滚动区与按钮间距改为 6,按钮右边缘固定对齐页面 14 边距。 +- 补充按钮尺寸与屏幕右边距断言;按当前流程未执行 analyze/test。 diff --git a/lib/core/theme/app_dimens.dart b/lib/core/theme/app_dimens.dart index e27b295..27c13c6 100644 --- a/lib/core/theme/app_dimens.dart +++ b/lib/core/theme/app_dimens.dart @@ -114,7 +114,7 @@ abstract final class AppDimens { static const Duration homeSecondaryTagAnimationDuration = Duration( milliseconds: 150, ); - static const double homeSecondaryFilterGap = 8; + static const double homeSecondaryFilterGap = 6; static const double homeSecondaryFilterVisualSize = 26; static const double homeSecondaryFilterIcon = 16; static const double homeSecondaryFilterStroke = 1.7; diff --git a/lib/pages/home/widgets/home_grid_header.dart b/lib/pages/home/widgets/home_grid_header.dart index 04931ed..3720c46 100644 --- a/lib/pages/home/widgets/home_grid_header.dart +++ b/lib/pages/home/widgets/home_grid_header.dart @@ -333,7 +333,7 @@ class HomeGridHeader extends StatelessWidget { AppDimens.homeSecondaryGridGap, ), child: Row( - crossAxisAlignment: CrossAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.start, children: [ Expanded( @@ -355,9 +355,8 @@ class HomeGridHeader extends StatelessWidget { const SizedBox(width: AppDimens.homeSecondaryFilterGap), Tooltip( message: l10n.filter, - child: SizedBox( - width: AppDimens.tapTarget, - height: AppDimens.homeSecondaryFilterVisualSize, + child: SizedBox.square( + dimension: AppDimens.homeSecondaryFilterVisualSize, child: Material( color: AppColors.transparent, child: InkWell( diff --git a/test/home/home_preview_layout_test.dart b/test/home/home_preview_layout_test.dart index 7b5d1cd..5382579 100644 --- a/test/home/home_preview_layout_test.dart +++ b/test/home/home_preview_layout_test.dart @@ -96,7 +96,7 @@ void main() { expect(find.byKey(const Key('home-grid-filter')), findsOneWidget); expect( tester.getSize(find.byKey(const Key('home-grid-filter'))), - const Size(AppDimens.tapTarget, AppDimens.homeSecondaryFilterVisualSize), + const Size.square(AppDimens.homeSecondaryFilterVisualSize), ); expect( tester.getSize(find.byKey(const Key('home-secondary-filter-visual'))), @@ -106,6 +106,14 @@ void main() { tester.getCenter(find.byKey(const Key('home-grid-filter'))).dy, closeTo(tester.getCenter(find.byKey(const Key('home-tag-hot'))).dy, 0.1), ); + expect( + tester.getRect(find.byKey(const Key('home-grid-filter'))).right, + closeTo( + tester.getRect(find.byKey(const Key('home-grid'))).right - + AppDimens.feedPageHorizontal, + 0.1, + ), + ); final filterIcon = tester.widget( find.byKey(const Key('home-secondary-filter-icon')), );