Files
ShowenV2/clients/flutter/lib/widgets/status_card.dart
showen 8ed9cb2d9d feat: Flutter APK 编译成功 + Gradle 配置修复 + APK 下载部署 + 待优化清单
- 通过 qemu-user-static 实现 ARM64 主机编译 Android APK (51MB)
- 修复 Gradle: Aliyun 镜像 + PREFER_SETTINGS + JVM 内存 1536M
- 部署 APK 到 configs/downloads/, Web 下载接口已验证 (HTTP 200)
- 新增 Flutter TODO.md: 10项待优化 (P0/P1/P2 分级)
- 新增 pm_soul.md, 更新 routes.rs APK 下载路由

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 06:43:55 +08:00

56 lines
1.5 KiB
Dart

import 'package:flutter/material.dart';
import '../theme/app_colors.dart';
class StatusCard extends StatelessWidget {
const StatusCard({
required this.title,
required this.value,
required this.subtitle,
required this.icon,
required this.accentColor,
super.key,
});
final String title;
final String value;
final String subtitle;
final IconData icon;
final Color accentColor;
@override
Widget build(BuildContext context) {
return Card(
child: Padding(
padding: const EdgeInsets.all(AppSpacing.md),
child: Row(
children: [
Container(
width: 48,
height: 48,
decoration: BoxDecoration(
color: accentColor.withValues(alpha: 0.16),
borderRadius: BorderRadius.circular(AppRadius.medium),
),
child: Icon(icon, color: accentColor),
),
const SizedBox(width: AppSpacing.md),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(title, style: Theme.of(context).textTheme.bodyMedium),
const SizedBox(height: AppSpacing.xs),
Text(value, style: Theme.of(context).textTheme.headlineSmall),
const SizedBox(height: AppSpacing.xs),
Text(subtitle, style: Theme.of(context).textTheme.bodySmall),
],
),
),
],
),
),
);
}
}