import 'package:flisp_app/provider/app_provider.dart'; import 'package:flisp_app/utils/theme_utils.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; class AppDrawer extends StatelessWidget { const AppDrawer({super.key}); DrawerHeader buildDrawerHeader(BuildContext context) { return DrawerHeader( decoration: BoxDecoration(color: Theme.of(context).colorScheme.primary), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ CircleAvatar( radius: 30, backgroundColor: Colors.white, child: Icon( Icons.flash_on, color: Theme.of(context).colorScheme.primary, size: 40, ), ), SizedBox(height: 10), Text( '闪灵', style: TextStyle( color: Colors.white, fontSize: 24, fontWeight: FontWeight.bold, ), ), Text( '记录每一刻的灵感', style: TextStyle(color: Colors.white70, fontSize: 14), ), ], ), ); } Widget _buildDarkModeSection(BuildContext context, AppProvider appProvider) { return ListTile( leading: Icon( appProvider.isDarkMode ? Icons.dark_mode : Icons.light_mode, color: Theme.of(context).colorScheme.primary, ), title: const Text('暗黑模式'), trailing: Switch( value: appProvider.isDarkMode, onChanged: (value) { appProvider.toggleDarkMode(value); }, ), onTap: () { appProvider.toggleDarkMode(!appProvider.isDarkMode); }, ); } Widget _buildThemeSection(BuildContext context, AppProvider appProvider) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( padding: const EdgeInsets.fromLTRB(16, 16, 16, 8), child: Text('主题颜色', style: Theme.of(context).textTheme.titleMedium), ), _buildDarkModeSection(context, appProvider), buildThemeColorList(context, appProvider), ], ); } // 构建抽屉菜单项 Widget _buildDrawerItem({ required BuildContext context, required IconData icon, required String title, required VoidCallback onTap, }) { return ListTile( leading: Icon(icon, color: Theme.of(context).colorScheme.primary), title: Text(title), onTap: onTap, ); } @override Widget build(BuildContext context) { final appProvider = Provider.of(context); return Drawer( child: ListView( padding: EdgeInsets.zero, children: [ // 抽屉头部 buildDrawerHeader(context), _buildThemeSection(context, appProvider), const Divider(), _buildDrawerItem( context: context, icon: Icons.help, title: '帮助与反馈', onTap: () { Navigator.pop(context); // 这里可以导航到帮助页面 }, ), ], ), ); } }