有什么方法可以处理Flutter中BottomNavigationBar上的长按吗?
我看到了“ onTap”事件处理程序,但除此之外,我也无法将这些项目包装到GestureDetector中。
我可以将整个BottomNavigationBar部分包装到GestureDetector中,但是在这种情况下,不可能知道按下了哪个项目:-/
谢谢!
答案 0 :(得分:0)
几天后,我终于了解了它的实现方法:您只需(几乎一如既往)将底部导航栏项目中的Icon和Text包裹到GestureDetector小部件中,就可以了:)
该代码段为:
new BottomNavigationBarItem(
icon: GestureDetector(
onLongPress: (){print("long tap icon");
setState(() {
_resetSct(context, i);
});
},
child: new Image.memory([skiped])), //Icon(Icons.looks_one),//photos[0].icon,
title: GestureDetector(
onLongPress: (){print("long tap title");
setState(() {
//do stuff
});
},
child: Text([skipped]))
答案 1 :(得分:-1)
使用Flutter,我建议您创建自定义的底部导航栏,因为它很容易做到。
注意:无法使用默认的BottomNaivgationBarItem来执行所需的操作。
答案 2 :(得分:-2)
您还需要将 enableFeedback 添加为 true 并使用 GestureDetector 包装您的图标
BottomNavigationBar(
enableFeedback: true,
这对我有用。