列表视图项向左滑动并向右滑动?

列表视图项目可以响应向左滑动并向右滑动吗?

如果是这样,如何应用android左右滑动滚动打开不同的意图? 我想要在Android的默认情况下一样,如联系人视图中的电话或消息。

谢谢

  • onLongClickListener永远不会被激怒
  • 即使没有数据,ListView类的替代背景颜色
  • checkbox自动调用ListView滚动时onCheckedChange?
  • android listview视图。 何时使用它,何时不使用
  • 如何把可编辑的edittext内的列表视图?
  • 在ListView中的CursorAdapter
  • 屏幕旋转后,Android listview消失
  • Android:如何隐藏ListView项目
  • 尝试这个:

    navigaList.setOnTouchListener(swipeDetector); navigaList.setOnItemClickListener(listener); OnItemClickListener listener = new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { if(swipeDetector.swipeDetected()) { if(swipeDetector.getAction() == Action.RL) { } else { } } }; 

    SwipeDetector.java

     public class SwipeDetector implements View.OnTouchListener { public static enum Action { LR, // Left to Right RL, // Right to Left TB, // Top to bottom BT, // Bottom to Top None // when no action was detected } private static final String logTag = "SwipeDetector"; private static final int MIN_DISTANCE = 100; private float downX, downY, upX, upY; private Action mSwipeDetected = Action.None; public boolean swipeDetected() { return mSwipeDetected != Action.None; } public Action getAction() { return mSwipeDetected; } public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: { downX = event.getX(); downY = event.getY(); mSwipeDetected = Action.None; return false; // allow other events like Click to be processed } case MotionEvent.ACTION_MOVE: { upX = event.getX(); upY = event.getY(); float deltaX = downX - upX; float deltaY = downY - upY; // horizontal swipe detection if (Math.abs(deltaX) > MIN_DISTANCE) { // left or right if (deltaX < 0) { Logger.show(Log.INFO,logTag, "Swipe Left to Right"); mSwipeDetected = Action.LR; return true; } if (deltaX > 0) { Logger.show(Log.INFO,logTag, "Swipe Right to Left"); mSwipeDetected = Action.RL; return true; } } else // vertical swipe detection if (Math.abs(deltaY) > MIN_DISTANCE) { // top or down if (deltaY < 0) { Logger.show(Log.INFO,logTag, "Swipe Top to Bottom"); mSwipeDetected = Action.TB; return false; } if (deltaY > 0) { Logger.show(Log.INFO,logTag, "Swipe Bottom to Top"); mSwipeDetected = Action.BT; return false; } } return true; } } return false; } } 

    我认为你可以使用OnTouchListener ,并通过ACTION_MOVE (如ACTION_DOWNACTION_MOVEUPCANCEL ACTION_MOVE列表项上的填充,初始和当前运动。