fix(home): 重绘二级筛选三线图标

This commit is contained in:
Zhou Weidong committed 2026-10-22 18:37:16 +08:00
1 parent 8197abd55d
commit 448010115f
5 files changed
+48 -13

No files matched your search

+1
View File
@@ -81,6 +81,7 @@ abstract final class AppColors {
static const textSecondary = Color(0xFF8E8E93);
static const textTertiary = Color(0xFF9E9E9E);
static const textTabInactive = Color(0xFFB0B0B0);
static const textFilterIcon = Color(0xFF7A7A7E);
/// 原生开屏与冷启动过渡底色。
static const splashInk = ink;
+2 -1
View File
@@ -113,7 +113,8 @@ abstract final class AppDimens {
static const double homeSecondaryTagRadius = 13;
static const double homeSecondaryFilterGap = 8;
static const double homeSecondaryFilterVisualSize = 26;
static const double homeSecondaryFilterIcon = 18;
static const double homeSecondaryFilterIcon = 16;
static const double homeSecondaryFilterStroke = 1.7;
static const double homePrimaryCategoryGap = 24;
static const double homeSecondaryTagGap = 14;
static const double homeSearchTopGap = 0;
+29 -4
View File
@@ -342,10 +342,12 @@ class HomeGridHeader extends StatelessWidget {
child: Center(
child: SizedBox.square(
dimension: AppDimens.homeSecondaryFilterVisualSize,
child: const Icon(
Icons.filter_list_rounded,
color: AppColors.textTertiary,
size: AppDimens.homeSecondaryFilterIcon,
child: const Center(
child: CustomPaint(
key: Key('home-secondary-filter-icon'),
size: Size.square(AppDimens.homeSecondaryFilterIcon),
painter: _ThreeLineFilterPainter(),
),
),
),
),
@@ -395,3 +397,26 @@ class HomeGridHeader extends StatelessWidget {
);
}
}
class _ThreeLineFilterPainter extends CustomPainter {
const _ThreeLineFilterPainter();
@override
void paint(Canvas canvas, Size size) {
final paint = Paint()
..color = AppColors.textFilterIcon
..strokeWidth = AppDimens.homeSecondaryFilterStroke
..strokeCap = StrokeCap.butt;
final positions = [
size.height * 0.25,
size.height * 0.5,
size.height * 0.75,
];
for (final y in positions) {
canvas.drawLine(Offset(0, y), Offset(size.width, y), paint);
}
}
@override
bool shouldRepaint(_ThreeLineFilterPainter oldDelegate) => false;
}