Flutter onPressed() vs onTap()

27

我已经使用Flutter大约8周了。 它太棒了,毫无疑问。

然而,自从我开始使用以来一直有一些让我困扰的事情,那就是为什么一些小部件具有onTap方法,而其他一些则具有onPressed方法?谷歌无法给我任何答案。

如果这对于Stack Overflow来说不够相关或不在话题之内,抱歉,请告诉我应该到哪个社区寻求帮助。


3
onPressed通常用于按钮上,而onTap则用于你使用类似于InkWell或GestureDetector的小部件添加行为。这是我的观察。 - nonybrighto
3个回答

22
根据我的经验,onTap() 用于捕获任何手势,而 onPressed() 特别用于按钮。 就像在现实生活中一样,当你需要使用一个按钮时,你会去按它。 希望这能解决你的烦恼,尽管我并不完全确定。

16

目前它们两者是相同的。只需将onPressed与按钮一起使用,将onTap与其他小部件一起使用。

Flutter仍然很新,因此有很多重叠之处。也许在未来的更新中,他们会使其更加流畅。例如,他们将合并许多几乎相同的小部件。


5

onTaponPressed的区别在于按钮中使用了GestureDetector手势检测器。
onTap应该在第一次触摸屏幕时立即响应。
onPressed应该等同于.onTapDown属性-最后一次触摸屏幕。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接