【发布时间】:2021-08-14 06:41:06
【问题描述】:
我正在处理颤振页脚导航,我有一个文件,我可以在其中启动所有需要的参数,如下所示:
const Db5BottomNavigationBarItem({
required this.icon,
this.title,
Widget? activeIcon,
this.backgroundColor,
required this.onTap,
}) : activeIcon = activeIcon as String? ?? icon;
final String icon;
final String activeIcon;
final Widget? title;
final Color? backgroundColor;
final Function onTap;
}
这就是我在页脚组件中使用它的方式:
child: Db5BottomNavigationBar(
items: <Db5BottomNavigationBarItem>[
Db5BottomNavigationBarItem(
icon: db5_ic_home,
onTap: () {},
),
Db5BottomNavigationBarItem(
icon: db5_ic_heart,
onTap: () {
Navigator.push(context,
MaterialPageRoute(builder: (context) => new Health()));
},
),
Db5BottomNavigationBarItem(
icon: db5_ic_msg,
onTap: () {},
),
Db5BottomNavigationBarItem(
icon: db5_ic_setting,
onTap: () {},
),
],
// currentIndex: _selectedIndex,
unselectedIconTheme: IconThemeData(color: db5_icon_color, size: 24),
selectedIconTheme: IconThemeData(color: db5_colorPrimary, size: 24),
onTap: (int index) {
setState(() {
// _selectedIndex = index;
});
},
type: Db5BottomNavigationBarType.fixed,
),
问题是,一旦按钮被点击,就说第一个:
Navigator.push(context,
MaterialPageRoute(builder: (context) => new Health()));
},
完全没有错误,也没有响应。 我做错了什么?
【问题讨论】:
-
db5_ic_home 的值是多少?为什么要使用从 Widget 到 String 的类型转换?
-
值为0,这是我的代码:var _selectedIndex=0; Db5BottomNavigationBarItem( 图标: db5_ic_heart, onTap: () { Navigator.push(context, MaterialPageRoute(builder: (context) => new Health())); }, ), currentIndex: _selectedIndex, onTap: (int index) { setState( () { _selectedIndex = 索引; }); },
标签: flutter flutter-navigation