OnGestureListener取消onCreateContextMenu

时间:2013-03-07 17:38:13

标签: android adapter gestures android-contextmenu

OnGestureListener上有一个ListView因为我需要手势,但现在ContextMenu无效。

已编辑的代码:

我在onActivityCreated Fragment ListView 方法中有这个:

gestureDetector = new GestureDetector(getActivity(),
            new GestureListener());
    View.OnTouchListener gestureListener = new View.OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            return gestureDetector.onTouchEvent(event);
        }
    };
    listView.setOnTouchListener(gestureListener);

这样做可以让我的手势,但是,评论它会带回我的ConextMenu。

我知道我可以使用showContextMenu(v),但如果答案是这样的话,我不知道该把它放在哪里(我已经在几个地方试过了)。

在我的Fragment里面设置了适配器,我有这个空方法,

public void onLongPress(MotionEvent e) {

    return;
}

我尝试将代码放在那里,但没有引用View。所以不确定如何继续?

1 个答案:

答案 0 :(得分:1)

您仍然可以使用GestureDetector来“查看”这个投放的手势,并且使用{{1}中的以下代码长按ContextMenu时也会打开ListView回调:

onLongPress()

完整的@Override public void onLongPress(MotionEvent e) { registerForContextMenu(listView); final int x = (int) e.getX(); final int y = (int) e.getY(); int position = listView.pointToPosition(x, y); final int firstVisible = listView.getFirstVisiblePosition(); View v = listView.getChildAt(position - firstVisible); getActivity().openContextMenu(v); } 班级示例can be found here