61 lines
1.9 KiB
Dart
61 lines
1.9 KiB
Dart
|
import 'package:flutter/material.dart';
|
||
|
|
||
|
import '../functions/responsive.dart';
|
||
|
|
||
|
class NavigationBarComponent extends StatelessWidget {
|
||
|
NavigationBarComponent({Key? key}) : super(key: key);
|
||
|
|
||
|
final List<Widget> navItems = [
|
||
|
ElevatedButton(onPressed: (){}, child: const Text("Heute")),
|
||
|
ElevatedButton(onPressed: (){}, child: const Text("Gesamtübersicht")),
|
||
|
ElevatedButton(onPressed: (){}, child: const Text("Statistics"))
|
||
|
];
|
||
|
|
||
|
Widget responsiveNavigation(BuildContext context){
|
||
|
final width = (isDesktop(context) || isTablet(context))
|
||
|
? MediaQuery.of(context).size.width * 0.8
|
||
|
: MediaQuery.of(context).size.width * 1;
|
||
|
|
||
|
if (isDesktop(context) || isTablet(context)){
|
||
|
return Container(
|
||
|
width: width,
|
||
|
padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 0),
|
||
|
child: Row(
|
||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||
|
children: navItems
|
||
|
),
|
||
|
);
|
||
|
}else {
|
||
|
return Container(
|
||
|
width: width,
|
||
|
padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 0),
|
||
|
child: Column(
|
||
|
children: [
|
||
|
ListView.builder(
|
||
|
shrinkWrap: true,
|
||
|
physics: const NeverScrollableScrollPhysics(),
|
||
|
itemCount: navItems.length,
|
||
|
itemBuilder: (BuildContext context, int index) {
|
||
|
return Container(
|
||
|
width: MediaQuery.of(context).size.width * 0.1,
|
||
|
margin: const EdgeInsets.symmetric(
|
||
|
vertical: 8,
|
||
|
horizontal: 8
|
||
|
),
|
||
|
child: navItems[index],
|
||
|
);
|
||
|
}
|
||
|
),
|
||
|
]
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@override
|
||
|
Widget build(BuildContext context) {
|
||
|
return responsiveNavigation(context);
|
||
|
}
|
||
|
}
|