Files
flutter_wisetronic/lib/widgets/general/navigationbar.dart
2026-07-12 04:33:48 +08:00

60 lines
1.8 KiB
Dart

import 'package:flutter/material.dart';
import 'package:responsive_builder/responsive_builder.dart';
import '../../widgets/desktop/desktop_navigationbar.dart';
import '../../widgets/mobile/mobile_navigationbar.dart';
import 'breadcrumbs.dart';
typedef OnBackPress();
class MiniNavigationBar extends StatefulWidget implements PreferredSizeWidget {
final Key? key;
final String title;
final bool back;
final bool toHome;
final bool showMe;
final List<BreadCrumb>? breadCrumbs;
final double? breadCrumbHeight;
final Widget? shoppingCart;
MiniNavigationBar({Key? key, PreferredSizeWidget? bottom, String? title,
bool? back, bool? toHome, bool? showMe, this.breadCrumbs,
this.breadCrumbHeight, this.shoppingCart})
: key = key,
preferredSize = breadCrumbHeight != null ? Size.fromHeight(kToolbarHeight + breadCrumbHeight) :
Size.fromHeight(kToolbarHeight),
title = title ?? '',
back = back ?? false,
toHome = toHome ?? false,
showMe = showMe ?? true;
@override
final Size preferredSize;
@override
State<StatefulWidget> createState() {
return MiniNavigationBarState();
}
}
class MiniNavigationBarState extends State<MiniNavigationBar> {
@override
Widget build(BuildContext context) {
return ScreenTypeLayout.builder(
mobile: (context) => MobileNavigationBar(title: widget.title, back: widget.back,
toHome: widget.toHome, showMe: widget.showMe,),
tablet: (context) => DesktopNavigationBar(hasBack: widget.back,
breadCrumbs: widget.breadCrumbs, shoppingCart: widget.shoppingCart,),
desktop: (context) => DesktopNavigationBar(hasBack: widget.back,
breadCrumbs: widget.breadCrumbs, shoppingCart: widget.shoppingCart,),
);
}
@override
void initState() {
super.initState();
}
}