Android ListView像Twitter List一样轻扫动作

我正在尝试实施“刷卡动作”function – 就像您可以在“新”推特应用中看到的那样。 您可以在滑动操作说明中找到更详细的说明 。

现在,有任何想法/解决方案如何实现此function?

谢谢!

在每一行中使用GestureDetector ,并将行内容本身包装在ViewFlipper 。 在滑动时,切换ViewFlipper

我有一个结合了GestureDetectorViewFlipper ,但它被设计为在任一方向上工作(例如,从常规行,向左向右滑动将切换到动作),这可能是也可能不是。 但是,它应该让你知道这可能如何工作。

我做了一些类似于你需要的东西 – 你可以在那里找到一些信息。 我在那里做一些手动的东西,但它很好用。 为了您的方便,这里是我使用的代码:

 OnTouchListener gestureListener = new View.OnTouchListener() { private int padding = 0; private int initialx = 0; private int currentx = 0; private ViewHolder viewHolder; public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { padding = 0; initialx = (int) event.getX(); currentx = (int) event.getX(); viewHolder = ((ViewHolder) v.getTag()); } if (event.getAction() == MotionEvent.ACTION_MOVE) { currentx = (int) event.getX(); padding = currentx - initialx; } if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL) { padding = 0; initialx = 0; currentx = 0; } if (viewHolder != null) { if (padding == 0) { v.setBackgroundColor(0xFF000000); if (viewHolder.running) v.setBackgroundColor(0xFF058805); } if (padding > 75) { viewHolder.running = true; v.setBackgroundColor(0xFF00FF00); viewHolder.icon.setImageResource(R.drawable.clock_running); } if (padding < -75) { viewHolder.running = false; v.setBackgroundColor(0xFFFF0000); } v.setPadding(padding, 0, 0, 0); } return false; } };