fix(ui): 打磨推荐追剧我的设置页间距与图标

This commit is contained in:
Vicky authored and trae-solo-agent committed 2026-10-28 16:36:51 +08:00
1 parent de7da64886
commit 5346be40a9
33 files changed
+1408 -811

No files matched your search

+31 -20
View File
@@ -1,6 +1,7 @@
// Author: fruit.com.cn
import 'dart:async';
import 'dart:ui' as ui;
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
@@ -13,8 +14,7 @@ import '../../../core/widgets/centered_toast.dart';
import '../../../core/widgets/remote_image.dart';
import '../../../l10n/app_localizations.dart';
const double _buttonHeight = 34;
const double _buttonRadius = 6;
const double _buttonHeight = 40;
/// 「我的」页用户区。
class MineHeader extends StatelessWidget {
@@ -35,7 +35,7 @@ class MineHeader extends StatelessWidget {
final uid = signedIn ? user?.uid.trim() ?? '' : '';
return Padding(
key: const Key('mine-user-row'),
padding: const EdgeInsets.symmetric(vertical: AppDimens.spaceMd),
padding: const EdgeInsets.symmetric(vertical: AppDimens.spaceSm),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
@@ -55,7 +55,7 @@ class MineHeader extends StatelessWidget {
fontFamily: 'Outfit',
color: AppColors.textPrimary,
fontSize: AppDimens.mineUserName,
fontWeight: FontWeight.w700,
fontWeight: FontWeight.w400,
height: AppDimens.mineUserNameLineHeight,
),
),
@@ -121,18 +121,29 @@ class MineHeader extends StatelessWidget {
key: const Key('mine-avatar'),
width: AppDimens.mineAvatar,
height: AppDimens.mineAvatar,
decoration: const BoxDecoration(
color: AppColors.contentSurface,
decoration: BoxDecoration(
shape: BoxShape.circle,
border: Border.all(
color: AppColors.textTertiary,
width: 1.2,
),
),
child: ClipOval(
child: BackdropFilter(
filter: ui.ImageFilter.blur(sigmaX: 10, sigmaY: 10),
child: Container(
color: AppColors.textPrimary.withValues(alpha: 0.06),
alignment: Alignment.center,
child: path.isEmpty
? const Icon(
Icons.person_outline_rounded,
color: AppColors.textPrimary,
size: 30,
)
: RemoteImage(path, fit: BoxFit.cover),
),
),
),
clipBehavior: Clip.antiAlias,
child: path.isEmpty
? const Icon(
Icons.person_rounded,
color: AppColors.textPrimary,
size: 28,
)
: RemoteImage(path, fit: BoxFit.cover),
);
}
@@ -141,20 +152,20 @@ class MineHeader extends StatelessWidget {
required String label,
required VoidCallback onTap,
}) {
return OutlinedButton(
return TextButton(
key: key,
onPressed: onTap,
style: OutlinedButton.styleFrom(
style: TextButton.styleFrom(
minimumSize: const Size(0, _buttonHeight),
padding: const EdgeInsets.symmetric(horizontal: AppDimens.spaceMd),
foregroundColor: AppColors.textPrimary,
side: const BorderSide(color: AppColors.mineOutline),
backgroundColor: AppColors.brandRed,
foregroundColor: AppColors.onPrimary,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(_buttonRadius),
borderRadius: BorderRadius.circular(_buttonHeight / 2),
),
textStyle: const TextStyle(
fontSize: AppDimens.body,
fontWeight: FontWeight.w500,
fontWeight: FontWeight.w400,
),
),
child: Row(