gpt4 book ai didi

dart - Flutter AbsorbPointer 与 IgnorePointer 的区别

转载 作者:IT老高 更新时间:2023-10-28 12:37:16 27 4
gpt4 key购买 nike

AbsorbPointerIgnorePointer在flutter中有什么区别?

文档提及:

AbsorbPointer prevents its subtree from receiving pointer events by terminating hit testing at itself.

IgnorePointer, which also prevents its children from receiving pointer events but is itself invisible to hit testing.

我不明白两者在现实生活中的区别是什么。

最佳答案

不同之处在于,当我们有两个相互重叠的小部件时,它们都可以接收点击。

考虑一个红色和蓝色方 block ,都可以点击,其中蓝色方 block 较小,位于红色方 block 的顶部:

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

默认情况下,如果没有 IgnorePointer/AbsorbPointer,点击蓝色方 block 会发送一个蓝色的点击事件,而红色则什么也得不到。

在这种情况下,将蓝色方 block 包裹到一个AbsorbPointer中意味着当点击蓝色方 block 时,蓝色方 block 和红色方 block 都不会得到点击事件。

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

关于dart - Flutter AbsorbPointer 与 IgnorePointer 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55430842/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com