Change desktop version to use the original style of navigation, keep using drawer for mobile devices. Flutter is so cool!! :)

This commit is contained in:
Hyperling 2025-02-11 09:26:59 -07:00
parent cc33458457
commit d77e732551

View File

@ -1,5 +1,6 @@
// Flutter // Flutter
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'dart:io';
// Local // Local
import '/pages/expense.dart'; import '/pages/expense.dart';
@ -67,12 +68,7 @@ class _HomePageState extends State<HomePage> {
); );
} }
return LayoutBuilder(builder: (context, constraints) { Widget navigation = NavigationRail(
return Scaffold(
appBar: AppBar(
title: Text("Expense Tracker"),
),
drawer: NavigationRail(
extended: true, extended: true,
destinations: [ destinations: [
NavigationRailDestination( NavigationRailDestination(
@ -104,14 +100,39 @@ class _HomePageState extends State<HomePage> {
onDestinationSelected: (value) { onDestinationSelected: (value) {
setState(() { setState(() {
pageSelected = value; pageSelected = value;
if (Platform.isAndroid || Platform.isIOS) {
Navigator.pop(context); Navigator.pop(context);
}
}); });
}, },
), );
body: Container(
Widget main = Container(
color: Theme.of(context).colorScheme.primaryContainer, color: Theme.of(context).colorScheme.primaryContainer,
child: Center(child: page), child: Center(child: page),
);
Widget? drawer, body;
if (Platform.isAndroid || Platform.isIOS) {
drawer = navigation;
body = main;
} else {
drawer = null;
body = Row(
children: [
SafeArea(child: navigation),
Expanded(child: main),
],
);
}
return LayoutBuilder(builder: (context, constraints) {
return Scaffold(
appBar: AppBar(
title: Text("Expense Tracker"),
), ),
drawer: drawer,
body: body,
floatingActionButton: floatingButton, floatingActionButton: floatingButton,
); );
}); });