Flutter BottomNavigationBar:为什么所选项目会移动其他图标?

时间:2019-10-07 14:03:14

标签: flutter

我是不熟悉flutter的人,我创建了一个BottomNavigationBar,并在其中添加了一些包含flutter图标的BottomNavigationBarItem。

问题在于,当我选择BottomNavigationBar的一项时,该项会移动其他图标。

这是我的应用程序的屏幕截图:

enter image description here

有没有办法阻止这种转变?

我的代码:

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')
      )
    ],
  );
}
}

1 个答案:

答案 0 :(得分:2)

在构造BottomNavigationBar时,可以通过将其type参数设置为BottomNavigationBarType.fixed来改变其行为。

BottomNavigationBar(
  ...
  type: BottomNavigationBarType.fixed,
  ...
}

根据documentation,如果有四个或更少的项目,则默认typefixed,如果有四个或更多,则默认shifting