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

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

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

  • 如何摆脱overscroll发光
  • 使用反向无限滚动添加到ListView时保持滚动位置
  • 带有OnItemClickListener和GestureDetector的Android ListView
  • android ListView中的自定义字体
  • 片段示例中的Android ListView
  • OnItemClickListener不能与包含ListView的项目button一起使用
  • 在片段android创build列表视图
  • Android ListView alpha滚动快速滚动长列表
  • 看看这个答案,并使用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 。 我希望它有帮助