当使用47deg的android-swipelistview-sample时,如何在列表视图中长按显示上下文菜单?

时间:2014-11-07 14:25:37

标签: android android-listview

使用47deg。(https://github.com/47deg/android-swipelistview)中的android-swipelistview-sample时,上下文菜单有问题。问题是,当短按时,会显示上下文菜单。

如何只需长按一下即可显示上下文菜单?

2 个答案:

答案 0 :(得分:1)

此错误是由47度刷卡列表视图中的弯曲触摸事件分布引起的。 要解决这个问题,请注释掉

view.onTouchEvent(motionEvent);

在onTouch()方法中,在SwipeListViewTouchListener中的switch case MotionEvent.ACTION_DOWN:的末尾。问题将消失,但滚动ListView将变得迟钝,因为在列表视图滚动时将无法识别您的触摸事件。 要解决这个问题,只需添加到SwipeListView类的新标志,就像isScrolled一样。 然后,每次滚动状态改变时都需要更新此标志:

mListView.setOnScrollListener(new AbsListView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(AbsListView absListView, int i) {
                mListView.setScrolling(i == SCROLL_STATE_FLING);
            }
            @Override
            public void onScroll(AbsListView absListView, int i, int i2, int i3) {

            }
        });

最后,只有在视图滚动时才使其分发触摸事件:

if(swipeListView.isScrolling()){
                view.onTouchEvent(motionEvent);
            }
祝你好运!

答案 1 :(得分:0)

我认为你是在onItemLongClick上实现代码,尝试创建上下文菜单public void onCreateContextMenu(final ContextMenu menu, final View v, final ContextMenuInfo menuInfo) 你将在哪里设置菜单。

希望这会对你有所帮助。