Android - 为什么onItemLongClick(...)返回一个布尔值?

Tim*_*Tim 22 java android long-click onlongclicklistener

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

Ego*_*gor 37

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


Yo *_*pps 9

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

@Override
public boolean onLongClick(View view) {

//Do all you stuff here    

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

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