27

来自 Java 背景,我习惯于处理操作,尽管我不太确定为什么该方法需要返回布尔值并且不完全理解网站上给出的解释:如果回调消耗了长按,则为 true,false除此以外。

4

2 回答 2

48

您可能知道,ViewAndroid 中的层次结构由树表示。当您trueonItemLongClick()- 返回时,这意味着View当前接收到的事件是真正的事件接收者,并且该事件不应传播到Views树中的另一个;当您返回时false-您让事件传递给Views可能消耗它的另一个。希望这可以帮助。

于 2012-09-01T19:01:35.550 回答
9

我将通过一个例子为你进一步澄清这一点。

@Override
public boolean onLongClick(View view) {

//Do all you stuff here    

return true; // or you can return false;
}
  • return true 表示:事件已被处理。在此之后不会触发任何事件。
  • return false 表示:事件尚未处理。与此单击有关的任何其他事件仍将触发。

因此,在onLongClick()触发后,如果您不希望常规onClick()触发,则只需从 onLongClick() 事件返回 true 。

于 2018-09-10T19:35:50.067 回答