04.BottomNavigationBar

前言

开发一个应用,界面的开始大部分情况下都是一个底部标签控制器。而在Flutter中就是 BottomNavigationBar

一、 创建 BottomNavigationBar

这里我想创建一个类似微信的底部标签,Widget内我会这样写:

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      bottomNavigationBar: BottomNavigationBar(
        items: const [
          BottomNavigationBarItem(
            icon: Icon(Icons.chat),
            label: '微信',
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.contact_mail),
            label: '通讯录',
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.nature_people),
            label: '发现',
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.settings),
            label: '我',
          ),
        ],
      ),
    );
  }

显示问题

看看效果:

1

怎么什么都没有?仔细看下其实都是白色的,我们设置一下颜色看看:

2

但是选中的标签的样式会比较突出,怎么改成我们熟悉的样式呢?

3

二、 选中标签

这里明显是需要 StatefulWidget 的。通过 BottomNavigationBar: onTap 修改选中的标签

三、 页面切换

选中了标签我们也需要切换到对应的页面才行,而具体显示哪个页面是由 Scaffold 的 body 控制的。

Last updated

Was this helpful?