v6.1.0bottom_navy_bar
아름답고 애니메이션 효과가 있는 하단 탐색 바입니다. 현재 테마를 사용하지만, 자유롭게 맞춤 설정할 수 있습니다.
아름답고 애니메이션 효과가 있는 하단 탐색
{"sdk":"flutter"}{"sdk":"flutter"}아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.
Pub Awesome Flutter Widget Tests
Latest compatibility result for Stable channel Latest compatibility result for Beta channel Latest compatibility result for Dev channel
https://github.com/pedromassango/bottom_navy_bar/blob/master/images/flutter_favorite_badge.pngA beautiful and animated bottom navigation. The navigation bar uses your current theme, but you are free to customize it.
| Preview | PageView |
|---|---|
| FanBottomNavyBar Gif | Fix Gif |
iconSize - the item icon's sizeitems - navigation items, required more than one item and less than sixselectedIndex - the current item index. Use this to change the selected item. Defaults to zeroonItemSelected - required to listen when an item is tapped it provides the selected item's indexbackgroundColor - the navigation bar's background colorshowElevation - if false the appBar's elevation will be removedmainAxisAlignment - use this property to change the horizontal alignment of the items. It is mostly used when you have ony two items and you want to center the itemscurve - param to customize the item change's animationcontainerHeight - changes the Navigation Bar's heightshowInactiveTitle - use this property show a Inactive titles. Defaults to false.icon - the icon of this itemtitle - the text that will appear next to the icon when this item is selectedactiveColor - the active item's background and text colorinactiveColor - the inactive item's icon colortextAlign - property to change the alignment of the item titleactiveBackgroundColor - the active item's background coloractiveTextColor - the active item's text colortooltipText - the tooltip text that will appear when the item is long pressedAdd the dependency in pubspec.yaml:
dependencies:
...
bottom_navy_bar: ^6.0.0
Adding the widget
bottomNavigationBar: BottomNavyBar(
selectedIndex: _selectedIndex,
showElevation: true, // use this to remove appBar's elevation
onItemSelected: (index) => setState(() {
_selectedIndex = index;
_pageController.animateToPage(index,
duration: Duration(milliseconds: 300), curve: Curves.ease);
}),
items: [
BottomNavyBarItem(
icon: Icon(Icons.apps),
title: Text('Home'),
activeColor: Colors.red,
),
BottomNavyBarItem(
icon: Icon(Icons.people),
title: Text('Users'),
activeColor: Colors.purpleAccent
),
BottomNavyBarItem(
icon: Icon(Icons.message),
title: Text('Messages'),
activeColor: Colors.pink
),
BottomNavyBarItem(
icon: Icon(Icons.settings),
title: Text('Settings'),
activeColor: Colors.blue
),
],
)
class _MyHomePageState extends State<MyHomePage> {
int _currentIndex = 0;
PageController _pageController;
@override
void initState() {
super.initState();
_pageController = PageController();
}
@override
void dispose() {
_pageController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Bottom Nav Bar")),
body: SizedBox.expand(
child: PageView(
controller: _pageController,
onPageChanged: (index) {
setState(() => _currentIndex = index);
},
children: <Widget>[
Container(color: Colors.blueGrey,),
Container(color: Colors.red,),
Container(color: Colors.green,),
Container(color: Colors.blue,),
],
),
),
bottomNavigationBar: BottomNavyBar(
selectedIndex: _currentIndex,
onItemSelected: (index) {
setState(() => _currentIndex = index);
_pageController.jumpToPage(index);
},
items: <BottomNavyBarItem>[
BottomNavyBarItem(
title: Text('Item One'),
icon: Icon(Icons.home)
),
BottomNavyBarItem(
title: Text('Item Two'),
icon: Icon(Icons.apps)
),
BottomNavyBarItem(
title: Text('Item Three'),
icon: Icon(Icons.chat_bubble)
),
BottomNavyBarItem(
title: Text('Item Four'),
icon: Icon(Icons.settings)
),
],
),
);
}
}
Contributions of any kind are more than welcome! Feel free to fork and improve in any way you want, make a pull request, or open an issue. See CONTRIBUTING.md for more info on how to contribute to this project.
This project is licensed under the Apache-2.0 License - see the LICENSE file for details.