import 'package:flutter/material.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( title: 'Trainer App', theme: ThemeData( colorScheme: ColorScheme.fromSeed(seedColor: Colors.pink), useMaterial3: true, ), home: const HomeScreen(), ); } } class HomeScreen extends StatelessWidget { const HomeScreen({super.key}); @override Widget build(BuildContext context) { return Scaffold( body: SafeArea( child: Padding( padding: const EdgeInsets.all(16.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Text( 'Hallo Trainer!', style: TextStyle( fontSize: 32, fontWeight: FontWeight.bold, color: Colors.pink, ), ), const SizedBox(height: 20), // Next Training Card Container( height: 200, width: double.infinity, decoration: BoxDecoration( borderRadius: BorderRadius.circular(12), image: const DecorationImage( image: AssetImage('assets/training_bg.jpg'), fit: BoxFit.cover, ), ), child: const Center( child: Text( 'Dein nächstes Training', style: TextStyle( color: Colors.white, fontSize: 24, fontWeight: FontWeight.bold, ), ), ), ), const SizedBox(height: 20), // Favorites Section const Text( 'Favoriten', style: TextStyle( fontSize: 20, fontWeight: FontWeight.bold, ), ), const SizedBox(height: 10), SizedBox( height: 80, child: ListView( scrollDirection: Axis.horizontal, children: const [ CategoryCircle(title: 'Kondition', icon: Icons.directions_run), CategoryCircle(title: 'Wurf', icon: Icons.sports_handball), CategoryCircle(title: 'Passen', icon: Icons.sports_volleyball), CategoryCircle(title: 'Torhüter', icon: Icons.sports_soccer), ], ), ), const SizedBox(height: 20), // Suggestions Section const Text( 'Vorschläge', style: TextStyle( fontSize: 20, fontWeight: FontWeight.bold, ), ), const SizedBox(height: 10), Expanded( child: ListView( children: const [ ExerciseCard( title: 'Wurf nach Täuschung', category: 'Wurf', ), ExerciseCard( title: 'Doppelpass', category: 'Passen', ), ], ), ), ], ), ), ), bottomNavigationBar: BottomNavigationBar( type: BottomNavigationBarType.fixed, items: const [ BottomNavigationBarItem(icon: Icon(Icons.home), label: 'Home'), BottomNavigationBarItem(icon: Icon(Icons.search), label: 'Suche'), BottomNavigationBarItem(icon: Icon(Icons.favorite_border), label: 'Favoriten'), BottomNavigationBarItem(icon: Icon(Icons.calendar_today), label: 'Kalender'), BottomNavigationBarItem(icon: Icon(Icons.person_outline), label: 'Profil'), ], ), ); } } class CategoryCircle extends StatelessWidget { final String title; final IconData icon; const CategoryCircle({ super.key, required this.title, required this.icon, }); @override Widget build(BuildContext context) { return Padding( padding: const EdgeInsets.only(right: 16.0), child: Column( children: [ Container( width: 50, height: 50, decoration: BoxDecoration( color: Theme.of(context).colorScheme.primary.withOpacity(0.1), shape: BoxShape.circle, ), child: Icon( icon, color: Theme.of(context).colorScheme.primary, ), ), const SizedBox(height: 4), Text( title, style: const TextStyle(fontSize: 12), ), ], ), ); } } class ExerciseCard extends StatelessWidget { final String title; final String category; const ExerciseCard({ super.key, required this.title, required this.category, }); @override Widget build(BuildContext context) { return Card( margin: const EdgeInsets.only(bottom: 8.0), child: ListTile( title: Text(title), subtitle: Text(category), leading: Container( width: 60, height: 60, decoration: BoxDecoration( color: Colors.grey[200], borderRadius: BorderRadius.circular(8), ), child: const Icon(Icons.sports_handball), ), ), ); } }