75 lines
2.2 KiB
Dart
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'),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
} |