bottom_tab_bar, 用法和bottom_navigation_bar同樣,可是新增了一些屬性的用法git
List<BottomTabBarItem>
bottom navigation bar 裏面的 icon and title.github
ValueChanged<int>
回調,帶的是tab的index The callback that is called when a item is tapped.bash
The widget creating the bottom navigation bar needs to keep track of the current index and call setState
to rebuild it with the newly provided index.app
int
The index into [items] of the current active item. 當前激活的是哪個tabide
BottomTabBarType
Defines the layout and behavior of a [BottomTabBar].動畫
See documentation for [BottomTabBarType] for information on the meaning of different types.ui
Color
The color of the selected item when bottom navigation bar is [BottomTabBarType.fixed].this
If [fixedColor] is null then the theme's primary color, [ThemeData.primaryColor], is used. However if [BottomTabBar.type] is [BottomTabBarType.shifting] then [fixedColor] is ignored.spa
double
The size of all of the [BottomTabBarItem] icons.code
See [BottomTabBarItem.icon] for more information.
bool
動畫是否開啓,默認是開起的
Color
未讀消息的顏色,默認是fixedColor
bool
按壓水墨屏效果是否開啓,默認是開啓的, 仍是帶動畫的,不太適合咱們的正常項目
Widget
未讀消息,是一個widget,能夠自定義樣式
String
未讀消息
first import dependeny in pubspec.yaml
dependencies:
flutter:
sdk: flutter
bottom_tab_bar:
git: https://github.com/LiuC520/flutter_bottom_tab_bar.git
複製代碼
example:
class HomeState extends State<Home> with SingleTickerProviderStateMixin {
TabController _tabController;
int _selectedIndex = 1;
String badgeNo1;
var titles = ['home', 'video', 'find', 'smallvideo', 'my'];
var icons = [
Icons.home,
Icons.play_arrow,
Icons.child_friendly,
Icons.fiber_new,
Icons.mic_none
];
@override
void initState() {
super.initState();
_tabController =
new TabController(vsync: this, initialIndex: 1, length: titles.length);
badgeNo1 = '12';
}
void _onItemSelected(int index) {
setState(() {
_selectedIndex = index;
badgeNo1 = '';
});
}
final _widgetOptions = [
Text('Index 0: Home'),
Text('Index 1: Video'),
Text('Index 2: find someone'),
Text('Index 3: small Video'),
Text('Index 4: My'),
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Bottom Tab Bar'),
actions: <Widget>[new Icon(Icons.photo_camera)],
),
bottomNavigationBar: BottomTabBar(
items: <BottomTabBarItem>[
BottomTabBarItem(
icon: Icon(icons[0]), title: Text(titles[0]), badgeNo: badgeNo1),
BottomTabBarItem(icon: Icon(icons[1]), title: Text(titles[1])),
BottomTabBarItem(icon: Icon(icons[2]), title: Text(titles[2])),
BottomTabBarItem(
icon: Icon(icons[3]),
activeIcon: Icon(icons[3]),
title: Text(titles[3])),
BottomTabBarItem(icon: Icon(icons[4]), title: Text(titles[4])),
],
fixedColor: Colors.blue,
currentIndex: _selectedIndex,
onTap: _onItemSelected,
type: BottomTabBarType.fixed,
isAnimation: false,
isInkResponse: false,
badgeColor: Colors.green,
),
body: Center(
child: _widgetOptions.elementAt(_selectedIndex),
),
);
}
}
複製代碼