我是不熟悉flutter的人,我创建了一个BottomNavigationBar,并在其中添加了一些包含flutter图标的BottomNavigationBarItem。
问题在于,当我选择BottomNavigationBar的一项时,该项会移动其他图标。
这是我的应用程序的屏幕截图:
有没有办法阻止这种转变?
我的代码:
import 'package:flutter/material.dart';
class Navbar extends StatefulWidget {
const Navbar({ Key key }) : super(key: key);
@override
_NavbarState createState() => _NavbarState();
}
class _NavbarState extends State<Navbar> {
int index = 0;
@override
Widget build(BuildContext context) {
return BottomNavigationBar(
iconSize: 30,
showSelectedLabels: false,
showUnselectedLabels: false,
selectedItemColor: Colors.blueGrey,
unselectedItemColor: Colors.black,
currentIndex: index,
onTap: (int selectedIndex) {
setState(() {
index = selectedIndex;
});
},
items: [
BottomNavigationBarItem(
icon: new Icon(
Icons.home,
),
title: new Text('Home'),
),
BottomNavigationBarItem(
icon: new Icon(
Icons.search,
),
title: new Text('Search'),
),
BottomNavigationBarItem(
icon: Icon(
Icons.add,
),
title: Text('Add')
),
BottomNavigationBarItem(
icon: Icon(
Icons.favorite,
),
title: Text('Add')
),
BottomNavigationBarItem(
icon: Icon(
Icons.account_circle,
),
title: Text('Account')
)
],
);
}
}
答案 0 :(得分:2)
在构造BottomNavigationBar
时,可以通过将其type
参数设置为BottomNavigationBarType.fixed
来改变其行为。
BottomNavigationBar(
...
type: BottomNavigationBarType.fixed,
...
}
根据documentation,如果有四个或更少的项目,则默认type
是fixed
,如果有四个或更多,则默认shifting
。