import 'package:flutter/material.dart'; class BuildCard extends StatelessWidget { final Widget? child; const BuildCard({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, ); } } Widget circleIconButton({ required IconData icon, required VoidCallback onPressed, required BuildContext context, }) { return ElevatedButton( onPressed: onPressed, style: ElevatedButton.styleFrom( shape: CircleBorder(), elevation: 0, backgroundColor: Theme.of(context).colorScheme.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()); }