具有 3 个以上项目的 Flutter BottomNavigationBar 会根据所选项目自动应用填充
Flutter BottomNavigationBar with more than 3 items automatically applies padding depending on the selected item
在我的应用程序中有一个 BottomNavigationBar,目前有 4 个项目。其代码如下:
bottomNavigationBar: BottomNavigationBar(
items: [
BottomNavigationBarItem(icon: Icon(Icons.home), label: "Startseite"),
BottomNavigationBarItem(icon: Icon(Icons.star), label: "Favoriten"),
BottomNavigationBarItem(icon: Icon(Icons.casino), label: "Quiz"),
BottomNavigationBarItem(icon: Icon(Icons.map), label: "Karte"),
],
currentIndex: _selectedIndex,
unselectedItemColor: Colors.grey,
showUnselectedLabels: true,
selectedItemColor: Colors.blue,
onTap: _onItemTapped,
),
_selectedIndex 只是一个整数。 _onItemTapped 函数:
void _onItemTapped(int index) {
setState(() {
_selectedIndex = index;
});
setState(() {
if (index == 0) {
SwipePage();
} else if (index == 1) {
DatabaseProvider.db.queryDb();
Navigator.of(context).push(
toFavouritesPage(),
);
} else if (index == 2) {
Navigator.of(context).push(
toQuizPage(),
);
} else if (index == 3) {
Navigator.of(context).push(
toMapsPage(),
);
}
});
}
有 3 个项目看起来像这样(所有内容均匀分布):
有 4 个项目看起来像这样(我不明白这个填充是从哪里来的):
如何去掉填充以使所有内容保持均匀间隔?
将 bottomNavigationBarType: 设置为固定。默认情况下,在四个或更多项目上,它正在移动。这将突出显示所选项目,使其更加明显。
在我的应用程序中有一个 BottomNavigationBar,目前有 4 个项目。其代码如下:
bottomNavigationBar: BottomNavigationBar(
items: [
BottomNavigationBarItem(icon: Icon(Icons.home), label: "Startseite"),
BottomNavigationBarItem(icon: Icon(Icons.star), label: "Favoriten"),
BottomNavigationBarItem(icon: Icon(Icons.casino), label: "Quiz"),
BottomNavigationBarItem(icon: Icon(Icons.map), label: "Karte"),
],
currentIndex: _selectedIndex,
unselectedItemColor: Colors.grey,
showUnselectedLabels: true,
selectedItemColor: Colors.blue,
onTap: _onItemTapped,
),
_selectedIndex 只是一个整数。 _onItemTapped 函数:
void _onItemTapped(int index) {
setState(() {
_selectedIndex = index;
});
setState(() {
if (index == 0) {
SwipePage();
} else if (index == 1) {
DatabaseProvider.db.queryDb();
Navigator.of(context).push(
toFavouritesPage(),
);
} else if (index == 2) {
Navigator.of(context).push(
toQuizPage(),
);
} else if (index == 3) {
Navigator.of(context).push(
toMapsPage(),
);
}
});
}
有 3 个项目看起来像这样(所有内容均匀分布):
有 4 个项目看起来像这样(我不明白这个填充是从哪里来的):
如何去掉填充以使所有内容保持均匀间隔?
将 bottomNavigationBarType: 设置为固定。默认情况下,在四个或更多项目上,它正在移动。这将突出显示所选项目,使其更加明显。