diff --git a/lib/widget/part_detail.dart b/lib/widget/part_detail.dart index 4efc7a69..39216527 100644 --- a/lib/widget/part_detail.dart +++ b/lib/widget/part_detail.dart @@ -33,6 +33,8 @@ class _PartDisplayState extends RefreshableState { InvenTreePart part; + int _tabIndex = 0; + @override Future request(BuildContext context) async { await part.reload(context); @@ -162,12 +164,56 @@ class _PartDisplayState extends RefreshableState { } + void _onTabSelectionChanged(int index) { + setState(() { + _tabIndex = index; + }); + } + + Widget getSelectedWidget(int index) { + switch (index) { + case 0: + return Center( + child: ListView( + children: partTiles(), + ), + ); + case 1: + return Center( + child: ListView( + children: [ + ListTile( + title: Text("Stock"), + subtitle: Text("Stock info goes here!"), + ) + ], + ) + ); + default: + return null; + } + } + @override - Widget getBody(BuildContext context) { - return Center( - child: ListView( - children: partTiles(), - ), + Widget getBottomNavBar(BuildContext context) { + return BottomNavigationBar( + currentIndex: _tabIndex, + onTap: _onTabSelectionChanged, + items: const [ + BottomNavigationBarItem( + icon: FaIcon(FontAwesomeIcons.infoCircle), + title: Text("Details"), + ), + BottomNavigationBarItem( + icon: FaIcon(FontAwesomeIcons.boxes), + title: Text("Stock"), + ), + ] ); } + + @override + Widget getBody(BuildContext context) { + return getSelectedWidget(_tabIndex); + } } \ No newline at end of file diff --git a/lib/widget/refreshable_state.dart b/lib/widget/refreshable_state.dart index b0b9ad3c..bb1b7aca 100644 --- a/lib/widget/refreshable_state.dart +++ b/lib/widget/refreshable_state.dart @@ -46,7 +46,13 @@ abstract class RefreshableState extends State { } // Function to construct a body (MUST BE PROVIDED) - Widget getBody(BuildContext context); + Widget getBody(BuildContext context) { + return null; + } + + Widget getBottomNavBar(BuildContext context) { + return null; + } @override Widget build(BuildContext context) { @@ -60,7 +66,8 @@ abstract class RefreshableState extends State { body: RefreshIndicator( onRefresh: refresh, child: getBody(context) - ) + ), + bottomNavigationBar: getBottomNavBar(context), ); } } \ No newline at end of file