menu partly done.

This commit is contained in:
LilleBRG 2024-08-20 16:46:13 +02:00
parent 1c6fc39b14
commit a082441826
2 changed files with 98 additions and 28 deletions

1
Mobile/lib/Profile.dart Normal file
View File

@ -0,0 +1 @@

View File

@ -1,6 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_map/flutter_map.dart'; import 'package:flutter_map/flutter_map.dart';
import "package:latlong2/latlong.dart"; import "package:latlong2/latlong.dart";
import 'package:mobile/register.dart';
import "login.dart"; import "login.dart";
void main() { void main() {
@ -9,28 +10,11 @@ void main() {
class MyApp extends StatelessWidget { class MyApp extends StatelessWidget {
const MyApp({super.key}); const MyApp({super.key});
// This widget is the root of your application.
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return MaterialApp( return MaterialApp(
title: 'H4 Flutter', title: 'H4 Flutter',
theme: ThemeData( theme: ThemeData(
// This is the theme of your application.
//
// TRY THIS: Try running your application with "flutter run". You'll see
// the application has a purple toolbar. Then, without quitting the app,
// try changing the seedColor in the colorScheme below to Colors.green
// and then invoke "hot reload" (save your changes or press the "hot
// reload" button in a Flutter-supported IDE, or press "r" if you used
// the command line to start the app).
//
// Notice that the counter didn't reset back to zero; the application
// state is not lost during the reload. To reset the state, use hot
// restart instead.
//
// This works for code too, not just values: Most code changes can be
// tested with just a hot reload.
colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue), colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue),
useMaterial3: true, useMaterial3: true,
), ),
@ -42,15 +26,6 @@ class MyApp extends StatelessWidget {
class MyHomePage extends StatefulWidget { class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title}); const MyHomePage({super.key, required this.title});
// This widget is the home page of your application. It is stateful, meaning
// that it has a State object (defined below) that contains fields that affect
// how it looks.
// This class is the configuration for the state. It holds the values (in this
// case the title) provided by the parent (in this case the App widget) and
// used by the build method of the State. Fields in a Widget subclass are
// always marked "final".
final String title; final String title;
@override @override
@ -58,6 +33,14 @@ class MyHomePage extends StatefulWidget {
} }
class _MyHomePageState extends State<MyHomePage> { class _MyHomePageState extends State<MyHomePage> {
int _selectedIndex = 0;
void _onItemTapped(int index) {
setState(() {
_selectedIndex = index;
});
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
@ -65,8 +48,10 @@ class _MyHomePageState extends State<MyHomePage> {
backgroundColor: Theme.of(context).colorScheme.inversePrimary, backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: Text(widget.title), title: Text(widget.title),
), ),
drawer: navigationMenu,
body: FlutterMap( body: FlutterMap(
options: const MapOptions(initialCenter: LatLng(55.9397, 9.5156), initialZoom: 7.0), options: const MapOptions(
initialCenter: LatLng(55.9397, 9.5156), initialZoom: 7.0),
children: [ children: [
TileLayer( TileLayer(
urlTemplate: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png', urlTemplate: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png',
@ -79,7 +64,10 @@ class _MyHomePageState extends State<MyHomePage> {
children: [ children: [
FloatingActionButton( FloatingActionButton(
onPressed: () { onPressed: () {
Navigator.push(context, MaterialPageRoute(builder: (context) => const LoginPage(title: "Login"))); Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const LoginPage(title: "Login")));
}, },
tooltip: 'Login', tooltip: 'Login',
child: const Icon(Icons.login), child: const Icon(Icons.login),
@ -88,4 +76,85 @@ class _MyHomePageState extends State<MyHomePage> {
), ),
); );
} }
Drawer get navigationMenu => Drawer(
child: ListView(
padding: EdgeInsets.zero,
children: [
const DrawerHeader(
decoration: BoxDecoration(
color: Colors.blue,
),
child: Text('Drawer Header'),
),
ListTile(
title: const Text('Home'),
leading: const Icon(Icons.home),
selected: _selectedIndex == 0,
onTap: () {
// Update the state of the app
_onItemTapped(0);
// Then close the drawer
Navigator.pop(context);
},
),
ListTile(
title: const Text('Favourites'),
leading: const Icon(Icons.star),
selected: _selectedIndex == 1,
onTap: () {
// Update the state of the app
_onItemTapped(1);
// Then close the drawer
Navigator.pop(context);
},
),
ListTile(
title: const Text('Profile'),
leading: const Icon(Icons.person),
selected: _selectedIndex == 2,
onTap: () {
// Update the state of the app
_onItemTapped(2);
// Then close the drawer
Navigator.pop(context);
},
),
const Divider(
color: Colors.grey,
thickness: 2,
indent: 40,
),
ListTile(
title: const Text('Register'),
leading: const Icon(Icons.add_box_outlined),
selected: _selectedIndex == 3,
onTap: () {
// Update the state of the app
_onItemTapped(3);
// Then close the drawer
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
const RegisterPage(title: "Register")));
},
),
ListTile(
title: const Text('Login'),
leading: const Icon(Icons.login),
selected: _selectedIndex == 4,
onTap: () {
// Update the state of the app
_onItemTapped(4);
// Then close the drawer
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const LoginPage(title: "Login")));
},
),
],
),
);
} }