import 'package:flutter/material.dart'; /// 选择工具栏组件 class SelectionToolbar extends StatelessWidget { final int selectionCount; final int totalCount; final VoidCallback onCancel; final VoidCallback? onSelectAll; final VoidCallback? onMore; final VoidCallback? onMove; final VoidCallback? onCopy; final VoidCallback onDelete; const SelectionToolbar({ super.key, required this.selectionCount, this.totalCount = 0, required this.onCancel, this.onSelectAll, this.onMore, this.onMove, this.onCopy, required this.onDelete, }); @override Widget build(BuildContext context) { return Container( padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), decoration: BoxDecoration( color: Theme.of(context).colorScheme.surface, boxShadow: [ BoxShadow( color: Colors.black.withValues(alpha: 0.1), blurRadius: 4, offset: const Offset(0, 2), ), ], ), child: Row( children: [ Text( '已选择 $selectionCount 项', style: const TextStyle(fontWeight: FontWeight.w500), ), const Spacer(), IconButton( icon: const Icon(Icons.cancel), onPressed: onCancel, tooltip: '取消选择', ), if (onSelectAll != null && selectionCount < totalCount) IconButton( icon: const Icon(Icons.select_all), onPressed: onSelectAll, tooltip: '全选', ), if (selectionCount == 1 && onMore != null) IconButton( icon: Icon(Theme.of(context).platform == TargetPlatform.iOS ? Icons.more_horiz : Icons.more_vert), onPressed: onMore, tooltip: '更多', ), if (onMove != null) IconButton( icon: const Icon(Icons.drive_file_move_outline), onPressed: onMove, tooltip: '移动', ), if (onCopy != null) IconButton( icon: const Icon(Icons.content_copy), onPressed: onCopy, tooltip: '复制', ), IconButton( icon: const Icon(Icons.delete), onPressed: onDelete, tooltip: '删除', color: Colors.red, ), ], ), ); } }