schleifchenturnier_25/lib/features/tournament/presentation/screens/home_screen.dart
2025-12-10 23:14:38 +01:00

75 lines
2.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'player_management_screen.dart';
import 'timer_setup_screen.dart';
import 'fields_screen.dart';
import 'stats_screen.dart';
import 'settings_screen.dart';
class HomeScreen extends ConsumerStatefulWidget {
const HomeScreen({super.key});
@override
ConsumerState<HomeScreen> createState() => _HomeScreenState();
}
class _HomeScreenState extends ConsumerState<HomeScreen> {
int _selectedIndex = 0;
static const List<Widget> _screens = [
PlayerManagementScreen(),
TimerSetupScreen(),
FieldsScreen(),
StatsScreen(),
];
void _onTabTapped(int index) {
setState(() {
_selectedIndex = index;
});
}
// Zeigt das Zahnrad nur auf Spieler- und Statistik-Tab
bool _showSettingsIcon() {
return _selectedIndex == 0 || _selectedIndex == 3;
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Schleifchenturnier'),
centerTitle: true,
backgroundColor: Theme.of(context).colorScheme.primaryContainer,
foregroundColor: Theme.of(context).colorScheme.onPrimaryContainer,
elevation: 4,
actions: _showSettingsIcon()
? [
IconButton(
icon: const Icon(Icons.settings),
onPressed: () {
Navigator.of(context).push(
MaterialPageRoute(builder: (_) => const SettingsScreen()),
);
},
),
]
: null,
),
body: _screens[_selectedIndex],
bottomNavigationBar: BottomNavigationBar(
type: BottomNavigationBarType.fixed,
currentIndex: _selectedIndex,
onTap: _onTabTapped,
selectedItemColor: Theme.of(context).colorScheme.primary,
unselectedItemColor: Colors.grey.shade600,
items: const [
BottomNavigationBarItem(icon: Icon(Icons.people), label: 'Spieler'),
BottomNavigationBarItem(icon: Icon(Icons.timer), label: 'Timer'),
BottomNavigationBarItem(icon: Icon(Icons.sports_volleyball), label: 'Felder'),
BottomNavigationBarItem(icon: Icon(Icons.bar_chart), label: 'Statistik'),
],
),
);
}
}