Flutter:InkWell 与 GestureDetector:有什么区别?

sph*_*nix 39 flutter

我是 Flutter 的新手,我发现了InkWellGestureDetector。在我看来,它们几乎相同。官方文档没有提供它们之间的任何深入比较。

  1. InkWell和之间有什么区别GestureDetector

  2. 什么时候用哪个?

Cop*_*oad 73

  1. 他们都提供像许多共同的特征onTaponLongPress等的主要区别是GestureDetector提供了更多的像拖等,另一方面控制它不包括连锁反应自来水,这InkWell确实。

  2. 你可以根据你的需要使用它们中的任何一个,你想要涟漪效果InkWell,需要更多的控制,GestureDetector甚至将两者结合起来。


bin*_*112 13

我将尝试提及它们的功能差异。

GestureDetector类非常广泛。您可以检测用户与使用它的屏幕或小部件的每种类型的交互。它包括捏合、滑动、触摸以及自定义手势。

InkWell要检测的手势数量有限,但它为您提供了装饰小部件的方法。你可以装饰

颜色: splashColor, focusColor, hoverColor...

边框:borderRadius, customBorder, ...

希望这是有帮助的!


NRC*_*NRC 10

InkWell将孩子的整个区域作为热点,轻松接收用户交互。但是,GestureDetector 不会将子项的整个区域设为热点,就像填充区域不是热点一样。因此,使用 GestureDetector 通常会导致用户交互失败。

  • 谢谢你。有一段时间,我想知道为什么按下图标等小部件这么困难。这证实了我的怀疑。我现在将所有内容都切换到 InkWell。 (2认同)

MBK*_*MBK 7

视觉差异

其他答案完全正确。这是视觉表现。

  • 这需要添加到 flutter 文档中。 (4认同)