长按和刷新列表后,在ListView上取消点击事件

时间:2018-05-26 08:13:10

标签: android

我的列表项视图中的视图附加了 ngOnInit() { if(localStorage.getItem('date')) { this.toDateTransaction = JSON.parse(localStorage.getItem('date')); } } searchByDate(data_fromDate, data_toDate,filterDataForSearch) { this.shareData.toDateTransact = this.dataToDate; this.toDateTransaction = this.shareData.toDateTransact; localStorage.setItem('date', JSON.stringify(this.toDateTransaction)) } (而不是OnLongClickListener本身)。即使我在ListView回调中返回true,一旦手指离开屏幕,onLongClick上的onItemClick也会被调用。通常这不会发生,但是长按会在适配器上触发ListView,这似乎会重置某个状态并在新项目点击时注册触摸事件。

我想阻止这个额外的notifyDataSetChanged触发。我试图使视图无效并取消挂起的输入事件但是没有做到这一点。

2 个答案:

答案 0 :(得分:0)

这更像是一个hacky解决方案而非解决方案,如果有人能提供更好的答案,我会很高兴。在我的onItemClick回调中,我要求专注于嵌入式视图,然后在500ms之后,释放该焦点。这给了我想要的行为,但我不想依赖于计时事件。

onLongClick

```

答案 1 :(得分:0)

Source

请注意,上面示例中的onClick()回调没有返回值,但是某些其他事件侦听器方法必须返回布尔值。原因取决于事件。对于少数这样做的人,这就是原因:

  • onLongClick()-这将返回一个布尔值,以指示您是否已经消费了该事件,并且不应继续进行下去。也就是说,返回true表示您已经处理了该事件,应该在此处停止;如果尚未处理,则返回false,并且/或者该事件应继续传递给其他任何单击侦听器。