diff --git a/README.md b/README.md index 7fa40e5..e176d15 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,7 @@ GNav( iconSize: 24, // tab button icon size tabBackgroundColor: Colors.purple.withOpacity(0.1), // selected tab background color padding: EdgeInsets.symmetric(horizontal: 20, vertical: 5), // navigation bar padding + axis: GnavAxis.horizontal // Define the nav bar axis tabs: [ GButton( icon: LineIcons.home, diff --git a/lib/src/gnav.dart b/lib/src/gnav.dart index 03fdf2d..b7a3dda 100644 --- a/lib/src/gnav.dart +++ b/lib/src/gnav.dart @@ -7,6 +7,11 @@ enum GnavStyle { oldSchool, } +enum GnavAxis { + horizontal, + vertical +} + class GNav extends StatefulWidget { const GNav({ Key? key, @@ -36,6 +41,7 @@ class GNav extends StatefulWidget { this.mainAxisAlignment = MainAxisAlignment.spaceBetween, this.style = GnavStyle.google, this.textSize, + this.axis = GnavAxis.horizontal }) : super(key: key); final List tabs; @@ -64,6 +70,7 @@ class GNav extends StatefulWidget { final MainAxisAlignment mainAxisAlignment; final GnavStyle? style; final double? textSize; + final GnavAxis? axis; @override _GNavState createState() => _GNavState(); @@ -91,8 +98,9 @@ class _GNavState extends State { Widget build(BuildContext context) { return Container( color: widget.backgroundColor, - child: Row( + child: Flex( mainAxisAlignment: widget.mainAxisAlignment, + direction: widget.axis == GnavAxis.horizontal ? Axis.horizontal : Axis.vertical, children: widget.tabs .map((t) => GButton( textSize: widget.textSize,