我正在嘗試實施「swipe for action」功能 - 就像您可以在「新」twitter應用中看到的那樣。您可以在swipe for action description找到更詳細的說明。Android ListView Swipe for Action像Twitter列表
現在,有沒有任何想法/解決方案如何實現此功能?
謝謝!
我正在嘗試實施「swipe for action」功能 - 就像您可以在「新」twitter應用中看到的那樣。您可以在swipe for action description找到更詳細的說明。Android ListView Swipe for Action像Twitter列表
現在,有沒有任何想法/解決方案如何實現此功能?
謝謝!
在每行中使用GestureDetector
,並將行內容本身包裝在ViewFlipper
中。在滑動中,切換ViewFlipper
的孩子。
我有一個ViewSwiper
結合了GestureDetector
和ViewFlipper
,但它被設計成在任一方向的工作(例如,從常規排,一個向左滑動或權將切換到動作),可能會或可能不可取。但是,它應該讓你知道這可能如何工作。
我做了類似你需要的東西 - 你可以找到一些關於there的信息。我在那裏做一些手動的東西,但它很好。爲了您的方便,這裏是我使用的代碼:
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;
}
};
感謝您的回覆。 我發現了一個類似於您的解決方案。 http://goo.gl/WpFEi 第一次測試反應非常好,但結果很差。我認爲這個解決方案需要一些定製 - 但我認爲它會工作! 謝謝 – Superroot
此功能適用於Android 2.1或更高版本GestureDetector? –
@CodeDroid:* What *「適用於Android 2.1+ GestureDetector」? – CommonsWare