【发布时间】:2015-02-03 14:35:05
【问题描述】:
我将@OnClick 侦听器设置为列表项中的视图。在某些情况下,我需要禁用此视图的侦听器,以便列表视图可以处理单击(应调用 OnItemClickListener),然后再次启用它。有没有办法用 Butterknife 做到这一点?
【问题讨论】:
标签: android butterknife
我将@OnClick 侦听器设置为列表项中的视图。在某些情况下,我需要禁用此视图的侦听器,以便列表视图可以处理单击(应调用 OnItemClickListener),然后再次启用它。有没有办法用 Butterknife 做到这一点?
【问题讨论】:
标签: android butterknife
我查看了 ButterKnife 的源代码,当您使用 @OnClick(R.id.some_id) 注释时,看起来 BK 在视图上生成并设置了 OnClickListeners。
现在,禁用OnClickListener 的唯一方法是删除它:
item.setOnClickListener(null)。
如果再次需要,可以要求ButterKnife重复注入:
ButterKnife.inject(item);
那和 Ethan 提出的解决方案是我能想到的唯一解决方案。
【讨论】:
inject 被bind 替换。
ButterKnife.bind(myImageView) 再次设置 OnClickListener
我不知道用 Butterknife。但我知道您可以通过创建私有布尔值和 if 语句来做到这一点。 if(yourboolean == true){ //set your onClickListener }else{//do nothing }
【讨论】:
您可以在应用程序中添加一个布尔标志,如shouldListenClick,并在您希望的任何地方设置为真和假。然后,您可以在执行代码之前检查 @OnClick 中的 shouldListenClick 或任何其他 ButterKnife 侦听器调用。
【讨论】: