diff --git a/lib/ui/views/navigation/navigation_view.dart b/lib/ui/views/navigation/navigation_view.dart index d8fdd5c6..be5250c5 100644 --- a/lib/ui/views/navigation/navigation_view.dart +++ b/lib/ui/views/navigation/navigation_view.dart @@ -13,58 +13,68 @@ class NavigationView extends StatelessWidget { return ViewModelBuilder.reactive( onViewModelReady: (model) => model.initialize(context), viewModelBuilder: () => locator(), - builder: (context, model, child) => Scaffold( - body: PageTransitionSwitcher( - duration: const Duration(milliseconds: 400), - transitionBuilder: ( - Widget child, - Animation animation, - Animation secondaryAnimation, - ) { - return FadeThroughTransition( - animation: animation, - secondaryAnimation: secondaryAnimation, - fillColor: Theme.of(context).colorScheme.surface, - child: child, - ); - }, - child: model.getViewForIndex(model.currentIndex), - ), - bottomNavigationBar: NavigationBar( - onDestinationSelected: model.setIndex, - selectedIndex: model.currentIndex, - destinations: [ - NavigationDestination( - icon: model.isIndexSelected(0) - ? const Icon(Icons.dashboard) - : const Icon(Icons.dashboard_outlined), - label: FlutterI18n.translate( - context, - 'navigationView.dashboardTab', + builder: (context, model, child) => WillPopScope( + onWillPop: ()async{ + if(model.currentIndex == 0){ + return true; + }else{ + model.setIndex(0); + return false; + } + }, + child: Scaffold( + body: PageTransitionSwitcher( + duration: const Duration(milliseconds: 400), + transitionBuilder: ( + Widget child, + Animation animation, + Animation secondaryAnimation, + ) { + return FadeThroughTransition( + animation: animation, + secondaryAnimation: secondaryAnimation, + fillColor: Theme.of(context).colorScheme.surface, + child: child, + ); + }, + child: model.getViewForIndex(model.currentIndex), + ), + bottomNavigationBar: NavigationBar( + onDestinationSelected: model.setIndex, + selectedIndex: model.currentIndex, + destinations: [ + NavigationDestination( + icon: model.isIndexSelected(0) + ? const Icon(Icons.dashboard) + : const Icon(Icons.dashboard_outlined), + label: FlutterI18n.translate( + context, + 'navigationView.dashboardTab', + ), + tooltip: '', ), - tooltip: '', - ), - NavigationDestination( - icon: model.isIndexSelected(1) - ? const Icon(Icons.build) - : const Icon(Icons.build_outlined), - label: FlutterI18n.translate( - context, - 'navigationView.patcherTab', + NavigationDestination( + icon: model.isIndexSelected(1) + ? const Icon(Icons.build) + : const Icon(Icons.build_outlined), + label: FlutterI18n.translate( + context, + 'navigationView.patcherTab', + ), + tooltip: '', ), - tooltip: '', - ), - NavigationDestination( - icon: model.isIndexSelected(2) - ? const Icon(Icons.settings) - : const Icon(Icons.settings_outlined), - label: FlutterI18n.translate( - context, - 'navigationView.settingsTab', + NavigationDestination( + icon: model.isIndexSelected(2) + ? const Icon(Icons.settings) + : const Icon(Icons.settings_outlined), + label: FlutterI18n.translate( + context, + 'navigationView.settingsTab', + ), + tooltip: '', ), - tooltip: '', - ), - ], + ], + ), ), ), );