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

问题描述 投票:22回答:2

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

java android onlongclicklistener long-click
2个回答
36
投票

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


3
投票

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

@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。

© www.soinside.com 2019 - 2024. All rights reserved.