Flutter:在某些屏幕上禁用侦听器指向事件



我做了一个类似银行应用程序的功能,当用户在屏幕上空闲太久时,会提示一条消息来通知用户。

我发现flutter的Listener小部件可以很容易地监听任何指向事件。目前我在应用程序第一个小部件(顶级(上使用Listener包装,所以我可以监听所有子小部件指向事件,包括DialogSnackbarAlertCamera等。

然而,有一些屏幕我想绕过Listener,所以在这些屏幕期间,用户在空闲太久时不会收到提示通知,例如用户还没有登录屏幕,如LoginSignUpForgot PasswordOTP等。

Listener(
onPointerDown: (e){
print("point down");
},
child: mychild
),

更新(2021年3月12日(:我设法完成了空闲处理功能,而没有用Listener包裹每个屏幕。并且在顶层仅使用一个Listener。此功能支持用户在屏幕上空闲,应用程序处于pausedinactive生命周期状态。由于隐私问题,无法显示解决方案。我结束这个问题。

然后不要在顶层使用Listener小部件,而只能在希望使用的屏幕顶层使用。

好吧,进一步扩展一下这个答案:你是一个有51道菜的厨师,因为其中50道菜需要番茄酱,所以你把番茄酱倒在所有上。现在,你在一个烹饪问题上寻求帮助:如何最好地从巧克力冰淇淋上刮下番茄酱。

我相信有一些奇怪的方法可以把番茄酱从冰淇淋碗里拿出来,但这个问题唯一正确的答案是你不这样做。你一开始就没有把它放在那里。

解决这个具体问题的办法是你不这样做。现在你意识到,仅仅因为大多数人需要,就把番茄酱倒在你所有的上是个坏主意,你又回到了第一步:如何处理大多数人,这样你就不必一个接一个地做了?这是一个合理的问题。你应该问这个问题。

只要准备好回答这个问题,人们就需要了解你的申请细节。因为有一个最佳答案取决于这些细节。您是否使用Blob在登录状态和未登录状态之间导航?那可能就是放置监听器的地方。但也许你没有。也许你可以为所有已经这样做的州建立一个公共基类。也许这在你的申请中是不可能的。也许你可以用Mixin?我们不知道。也许只是一种常见的方法?如果这是不可能的,你是在";一个接一个地做";领土

但是这个是一个需要问的问题。

现在,你只能把番茄酱倒在冰淇淋上,并坚持让人们帮你解决这个烂摊子,而不是找到一个更好的解决方案,把番茄酱分发给50个需要的菜。

最新更新