Files
.github
android
assets
ios
lib
providers
screens
types
widgets
account
attachment
navigation
app_background.dart
app_bottom_navigation.dart
app_destinations.dart
app_scaffold.dart
post
dialog.dart
loading_indicator.dart
markdown_content.dart
universal_image.dart
main.dart
router.dart
theme.dart
linux
macos
test
web
windows
.fvmrc
.gitignore
.metadata
README.md
analysis_options.yaml
build.yaml
devtools_options.yaml
pubspec.lock
pubspec.yaml
App/lib/widgets/navigation/app_bottom_navigation.dart
2024-11-09 00:09:46 +08:00

34 lines
964 B
Dart

import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:surface/widgets/navigation/app_destinations.dart';
class AppBottomNavigationBar extends StatefulWidget {
const AppBottomNavigationBar({super.key});
@override
State<AppBottomNavigationBar> createState() => _AppBottomNavigationBarState();
}
class _AppBottomNavigationBarState extends State<AppBottomNavigationBar> {
int _currentIndex = 0;
@override
Widget build(BuildContext context) {
return BottomNavigationBar(
currentIndex: _currentIndex,
type: BottomNavigationBarType.fixed,
showUnselectedLabels: false,
items: appDestinations.map((ele) {
return BottomNavigationBarItem(
icon: ele.icon,
label: ele.label,
);
}).toList(),
onTap: (idx) {
setState(() => _currentIndex = idx);
GoRouter.of(context).goNamed(appDestinations[idx].screen);
},
);
}
}