Android 如何在使用ViewGroup处理tap时使用ViewGroup处理长按';儿童观点?
我有一个视图组,它有几个孩子。我想在长按该视图组的任何部分时打开菜单,同时能够点击它的子对象并由他们处理此点击。我如何实现这种行为 我尝试使用Android 如何在使用ViewGroup处理tap时使用ViewGroup处理长按';儿童观点?,android,gesture,touch-event,Android,Gesture,Touch Event,我有一个视图组,它有几个孩子。我想在长按该视图组的任何部分时打开菜单,同时能够点击它的子对象并由他们处理此点击。我如何实现这种行为 我尝试使用onInterceptTouchEvent和SimpleGetStureListener,但onLongPress不会返回任何内容,因此当我移除手指时,它仍然由它的孩子处理 我能做到这一点的最好方法是将onLongPressListeners放在儿童视图上,并从中打开菜单,但这不是最好的方法。我也有一些不应该知道菜单和它们的视图组的视图 更新: 添加一些代
onInterceptTouchEvent
和SimpleGetStureListener
,但onLongPress
不会返回任何内容,因此当我移除手指时,它仍然由它的孩子处理
我能做到这一点的最好方法是将onLongPressListeners
放在儿童视图上,并从中打开菜单,但这不是最好的方法。我也有一些不应该知道菜单和它们的视图组的视图
更新:
添加一些代码
@OnClick(R.id.comment_header)
public void commentHeaderClicked() {
if (userClickedListener != null) {
if (comment != null) {
userClickedListener.onUserClicked(comment.getUser());
}
}
}
@OnLongClick(R.id.comment_container)
public boolean commentLongClick() {
if (commentLongClickListener != null) {
commentLongClickListener.onCommentLongClick(commentId,
isMine,
isMyPost);
}
return true;
}
问题是,如果有人对click view感兴趣,那么长时间单击查看组将被忽略 我想这充其量也难以实施。我倾向于同意您现有的答案,即您需要拦截触摸事件,并在
视图组中对所有内容(点击、长时间点击等)进行所有计算和决策。这让我觉得相当脆弱。就我个人而言,我不会试图做你所描述的事情。我建议您在ListView
/AbsListView
中寻找创意的“最佳”位置,以查看它们如何处理对行的长时间单击。