Butterknife @OnClick - 多次触发操作

Mar*_*ari 2 android butterknife

如果我在短时间内多次单击一个按钮,有时该操作会执行多次(取决于单击速度),有没有办法通过使用集成的任何内容来防止这种情况ButterKnife

在谷歌上搜索该问题的解决方案后,我通过了一篇SO帖子询问了相同的/sf/answers/2696753811/,之后我尝试在源代码上进行一些挖掘ButterKnife并找到了该类命名DebouncingOnClickListener(主要关注这个类,因为类“布局”类似于我在 StackOverflow 上找到的解决方案)。

该课程有一条评论说

单击一个按钮会禁用该框架的所有按钮

如果我理解正确的话,这意味着我不应该能够“垃圾邮件”地点击我的按钮。但事实并非如此,因为如果我垃圾点击所述按钮,我可以多次执行该操作按钮。

我在 StackOverflow 上找到的解决方案“解决”了我的问题,但我只是想知道 ButterKnife (我之前所说的课程的 Appart)上是否还有类似的东西,因为我真的不想把我的源搞得一团糟代码为几个按钮“手动”设置点击侦听器,并@OnClick在那些我并不关心是否被多次调用的按钮上使用。

tyn*_*ynn 5

DebouncingOnClickListener可以防止在一帧中多次点击。这并不是一个很长的延迟,只有几毫秒。正如您可以将其视为对某个问题的评论,Jake Wharton(作者)认为此行为是应用程序层的一部分,他不想将其添加到Butter Knife中。

它仅对一帧上的两次点击进行去抖处理。如果您在两个单独的框架上单击两次,则由应用程序层负责处理。您可以通过在第一次单击时禁用该按钮来解决此问题。

或者您的应用程序或域实现了基于时间的去抖(取决于您的用例)。