Flutter Widget 之IgnorePointer

474 阅读1分钟

有时,我们需要防止用户与app中的某个部分进行交互

例如,假设您的app从根本上改变UI 用户可能会点击到他们不要的东西,当UI改变了用户的点击使用方式时,这实际上是一个非常常见且令人沮丧的问题。

ezgif.com-gif-maker.gif

您可以在UI发生改变时,逐一禁用app中的所有交互元素来解决此问题,或者,您可以使用IgnorePointer。

ezgif.com-gif-maker (1).gif

只需用IgnorePointer包住app中想要短暂保护的部分,,然指定是否要忽略即可。

IgnorePointer(
    ignoring: true,
    child: ...,
)

瞧!UI的这一部分现在是禁止交互的。IgnorePointer会忽略所有指针动作:点击、单击、拖动、滚动,所有动作。整个子树都是。

ezgif.com-gif-maker (2).gif

因此,您可以将IgnorePointer放在app中的其他内容上,这样您的app将变得完全不可用了。

void main() {
    runApp(
        IgnorePointer(
            ignoring: true,
            child: MyApp(),
        ),
    );
}

如果想了解有关IgnorePointer的内容,或者关于Flutter的其他功能,请访问flutter.dev

原文翻译自视频:视频地址