Files
flutter_common/lib/widget/common_widget.dart
2025-11-23 23:07:36 +08:00

73 lines
1.6 KiB
Dart

import 'package:flutter/material.dart';
class CommonCard extends StatelessWidget {
final Widget? child;
const CommonCard({super.key, this.child});
@override
Widget build(BuildContext context) {
final colors = Theme.of(context).colorScheme;
return Container(
decoration: BoxDecoration(
color: colors.surfaceContainer,
borderRadius: BorderRadius.circular(12),
),
padding: const EdgeInsets.all(16),
child: child,
);
}
}
class CircleIconButton extends StatelessWidget {
final IconData icon;
final VoidCallback onPressed;
const CircleIconButton(
{super.key, required this.icon, required this.onPressed});
@override
Widget build(BuildContext context) {
final colors = Theme.of(context).colorScheme;
return ElevatedButton(
onPressed: onPressed,
style: ElevatedButton.styleFrom(
shape: CircleBorder(),
elevation: 0,
backgroundColor: colors.primary,
padding: EdgeInsets.zero,
minimumSize: const Size(0, 0),
),
child: Icon(icon, color: Colors.white),
);
}
}
Widget buildErrorInfo({
required String errorInfo,
required VoidCallback onPressed,
}) {
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('加载失败: $errorInfo'),
ElevatedButton(onPressed: onPressed, child: Text('重试')),
],
),
);
}
Widget buildLoadingIndicator() {
return Center(child: CircularProgressIndicator());
}
Widget buildEmptyData() {
return Center(
child: Text('暂无数据', style: TextStyle(fontSize: 16, color: Colors.grey)),
);
}