Added first draft of login and tour select page

This commit is contained in:
Dennis Nemec
2026-02-01 19:59:11 +01:00
parent 2bc428976a
commit 4e808e234d
37 changed files with 585 additions and 110 deletions

View File

@ -0,0 +1,103 @@
import 'package:flutter/material.dart';
class TourSelectPage extends StatefulWidget {
const TourSelectPage({super.key});
@override
State<StatefulWidget> createState() => _TourSelectPageState();
}
class _TourSelectPageState extends State<TourSelectPage> {
Widget _listTour() {
return ListView.separated(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
itemBuilder: (context, index) {
return ListTile(
leading: Icon(Icons.local_shipping_outlined),
title: const Text("Dennis Nemec"),
subtitle: const Text("15 Lieferungen"),
tileColor: Theme.of(context).colorScheme.surface,
trailing: Icon(Icons.arrow_forward_ios),
);
},
separatorBuilder: (BuildContext context, int index) =>
SizedBox(height: 10),
itemCount: 6,
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: ListView(
children: [
Image.asset(
"assets/graphics/bg-carrier-cylinder-duo.png",
fit: BoxFit.contain,
),
Padding(padding: const EdgeInsets.only(top: 25), child: Text(
"Wählen Sie Ihre Tour aus:",
style: Theme.of(context).textTheme.titleLarge,
textAlign: TextAlign.center,
),),
Padding(
padding: const EdgeInsets.all(15),
child: SizedBox(
width: double.infinity,
child: Card(
color: Theme.of(context).colorScheme.surfaceContainerHighest,
child: Padding(
padding: const EdgeInsets.all(20),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Row(
children: [
Padding(
padding: const EdgeInsets.only(right: 10),
child: Icon(Icons.tour),
),
Text(
"Touren",
style: Theme.of(context).textTheme.titleMedium,
),
],
),
Row(
children: [
Padding(
padding: const EdgeInsets.only(right: 10),
child: Icon(Icons.calendar_month),
),
Text(
"01.02.2026",
style: Theme.of(context).textTheme.labelLarge,
),
],
),
],
),
Padding(
padding: const EdgeInsets.only(top: 15),
child: _listTour(),
),
],
),
),
),
),
),
],
),
),
);
}
}