Butterknife:暂时禁用监听器

Butterknife: temporarily disable listener

我将 @OnClick 侦听器设置为列表项中的视图。在某些情况下,我需要禁用此视图的侦听器,以便列表视图可以处理点击(应调用 OnItemClickListener),然后再次启用它。有没有办法用 Butterknife 做到这一点?

我不知道 Butterknife。但我知道您可以通过创建一个私有布尔值和一个 if 语句来做到这一点。 if(yourboolean == true){ //set your onClickListener }else{//do nothing }

我查看了 ButterKnife 源代码,当您使用 @OnClick(R.id.some_id) 注释时,BK 似乎会在视图上生成并设置 OnClickListeners。

现在,禁用 OnClickListener 的唯一方法是将其删除:

item.setOnClickListener(null)

如果您再次需要,可以要求ButterKnife重复注射:

ButterKnife.inject(item);

那个和Ethan提出的解决方案是我能想到的唯一解决方案。

您可以在应用程序中添加像 shouldListenClick 这样的布尔标志,并根据需要将其设置为 true 和 false。然后,您可以在 @OnClick 或任何其他 ButterKnife 侦听器调用中检查 shouldListenClick,然后再执行其代码。