当前位置:  开发笔记 > 编程语言 > 正文

Flutter AbsorbPointer与IgnorePointer的区别

如何解决《FlutterAbsorbPointer与IgnorePointer的区别》经验,为你挑选了1个好方法。

AbsorbPointerIgnorePointerflutter有什么区别?

文件提及:

AbsorbPointer通过自身终止命中测试来防止其子树接收指针事件。

IgnorePointer,它还阻止其子级接收指针事件,但对于命中测试而言本身是不可见的。

我没有得到两者之间的真实生活差异。



1> Rémi Roussel..:

区别在于,当我们有两个彼此重叠的小部件时,它们都可以接收点击。

考虑一个红色和蓝色的正方形,两者均可以单击,其中蓝色正方形较小,位于红色正方形的顶部:

Stack(
  alignment: Alignment.center,
  children: [
     Container(color: Colors.red),
     Container(width: 42, height: 42, color: Colors.blue),
  ],
)

默认情况下,如果没有IgnorePointer/ AbsorbPointer,点击蓝色发送蓝色的点击事件,而红色则没有任何作用。

在这种情况下,将蓝色方块包裹起来AbsorbPointer意味着在点击蓝色区域时,蓝色方块和红色方块都不会获得点击事件。

如果我们改为使用IgnorePointer,则红色方块在点击蓝色方块时会收到点击事件。

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有