长按BottomNavigationBarItem

时间:2019-05-31 00:17:24

标签: flutter

有什么方法可以处理Flutter中BottomNavigationBar上的长按吗?

我看到了“ onTap”事件处理程序,但除此之外,我也无法将这些项目包装到GestureDetector中。

我可以将整个BottomNavigationBar部分包装到GestureDetector中,但是在这种情况下,不可能知道按下了哪个项目:-/

谢谢!

3 个答案:

答案 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,

这对我有用。