使用47deg。(https://github.com/47deg/android-swipelistview)中的android-swipelistview-sample时,上下文菜单有问题。问题是,当短按时,会显示上下文菜单。
如何只需长按一下即可显示上下文菜单?
答案 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)
你将在哪里设置菜单。
希望这会对你有所帮助。