滑动检测列表视图的每一行

我有位于SD卡上的video列表。 在这一点上,我只需要帮助在列表视图中的每一行创build手势或轻扫检测。 感谢这个问题在stackoverflow 在网格布局上的手势检测 ,我实现了列表视图上的手势。 现在,它很容易检测到用户在正确方向或向左方向滑动。 但是这个手势是针对整个listview的。 我只是想知道如何实现这个刷卡检测个别行。 例如,应用程序现在可以打印“正确的轻扫”,“左轻扫”。 我只是想让它像“在第一排右刷卡”,“在第三排左刷卡”等。我希望我的问题是清楚的。

期待一些有用的答复。 谢谢

Solutions Collecting From Web of "滑动检测列表视图的每一行"

看看这个答案,并使用onFling事件内的onFling方法

 @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { try { Toast.makeText( listAdapter.getItem( listView.pointToPosition(Math.round(e1.getX()), Math.round(e1.getY())).toString()); return super.onFling(); } catch( Exception e ) { // do nothing } } 

我在我的解决scheme中使用每个项目的方法 – 看看这里我的刷卡检测代码可能有点不同于标准的刷卡检测,但它完全适合我。 而且我使用附加的标签来获取项目相关的数据。 希望有帮助,但如果你有一些问题只是让我知道,我会尽力解释更详细。

按照我的意见是使用布尔值的项目,当该项目被触摸设置为true,使用onTouchListener,

 ListItem.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View arg0, MotionEvent event) { click=true; return click; } });` 

那么你可以重写这个:

  @Override public boolean dispatchTouchEvent(MotionEvent ev){ super.dispatchTouchEvent(ev); Log.v("Inside", "=====Dispatch Event==="); if(click){ Log.v("Inside", "=====Dispatch Event=T=="); click=false; return gestureDetector.onTouchEvent(ev); }else{ return false; } } 

我认为你正在寻找的是SwipeView (或者甚至是ViewFlow ),而不是标准的Android手势检测。

这个问题很旧,但现在幸好杰克·沃顿(Jake Wharton)在这里向ICS发布了一些代码。 这应该让你刷个人行: https : //github.com/JakeWharton/SwipeToDismissNOA

我们实施了每行的滑动检测来揭示行为和解雇项目在这里https://github.com/47deg/android-swipelistview 。 我希望它有帮助