Flutter开发报错:命名参数'title'未定义问题解决方案
报错原因
Flutter 1.22及以上稳定版本中,BottomNavigationBarItem 组件已正式废弃title命名参数,改用label参数承载导航项文本内容。旧版本中传入title的写法无法被新版SDK识别,就会抛出 The named parameter 'title' isn't defined 错误。
你原有代码给title传高度为0的Container,目的是隐藏导航项文字标签,这个实现逻辑在新API规则下也需要同步调整,不能再通过自定义空容器实现。
修改方法
- 替换参数:删除原有
title参数,改用label参数,该参数接收字符串类型值,不需要显示文字时直接传入空字符串即可。 - 补充全局配置:在父级
BottomNavigationBar组件上添加配置,将showSelectedLabels、showUnselectedLabels属性都设为false,即可实现只显示导航图标、隐藏文字标签的效果,和你原有代码预期效果完全一致。
修改后的代码片段参考:
// 单个BottomNavigationBarItem修改 BottomNavigationBarItem( icon: Icon( Icons.home, color: _page == 0 ? Color.fromRGBO(79, 119, 45, 1) : Color.fromRGBO(236, 243, 158, 1), ), label: '', // 替换原title参数,空字符串对应隐藏文字的场景 ) // 父级BottomNavigationBar补充配置 BottomNavigationBar( // 保留你原有其他配置,比如currentIndex、onTap、items等 showSelectedLabels: false, showUnselectedLabels: false, items: [ // 放入修改后的所有BottomNavigationBarItem ] )
如果需要显示导航项文字,直接给label传入对应文案即可,文字的选中/未选中样式可以通过BottomNavigationBar的selectedLabelStyle、unselectedLabelStyle属性统一配置,无需单独传入自定义Widget。
内容的提问来源于stack exchange,提问作者Pankaj Bhandari
相关产品推荐
相关产品推荐

