我有一個日曆,我想讓左/右滑動和切換月份成爲可能。
是否有任何傾聽者左右滑動?
謝謝!滑動左/右的事件
滑動左/右的事件
回答
你可以用戶SimpleOnGestureListener
如下面的例子:(顯然,代替實際的代碼,移動到下一首/上月的吐司)
public class SelectFilterActivity extends Activity implements OnClickListener
{
private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
private GestureDetector gestureDetector;
View.OnTouchListener gestureListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/* ... */
// Gesture detection
gestureDetector = new GestureDetector(new MyGestureDetector());
gestureListener = new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
};
}
class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
try {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
return false;
// right to left swipe
if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
Toast.makeText(SelectFilterActivity.this, "Left Swipe", Toast.LENGTH_SHORT).show();
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
Toast.makeText(SelectFilterActivity.this, "Right Swipe", Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
// nothing
}
return false;
}
}
然後你把它連接到您的視圖:
// Do this for each view added to the grid
view.setOnClickListener(SelectFilterActivity.this);
view.setOnTouchListener(gestureListener);
它不工作。 'gridview.setOnClickListener(SelectFilterActivity.this);' 錯誤: '類型SelectFilterActivity沒有外圍實例是在範圍訪問'和另一個錯誤 'gridview.setOnTouchListener(gestureListener);' 錯誤: 'gestureListener不能解決了一個變量' –
那麼你需要適應你的具體情況,你沒有提供足夠的細節來編寫完整的解決方案。重要的部分是MyGestureDetector類,你需要以某種方式插入你的視圖 – Guillaume
SimpleOngestureListener可以捕捉onFling; 你可以重寫這個來捕捉滑動。
class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
try {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
return false;
// right to left swipe
if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
//do your stuff
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
//do your stuff
}
} catch (Exception e)
{
// nothing
}
return false;
}
我們不復制來自同一線程的另一個答案的代碼... –
我們沒有...? 但不,謝謝。 我一直在使用這段代碼一段時間, 顯然有其他人。 – ron
- 1. 如何處理左滑動和右滑動事件
- 2. Android左右滑動?
- 3. 左右滑動UIView
- 4. ECSlidingViewController左右滑動
- 5. 左右滑動的Android滑動菜單
- 6. 滑動的UIViewController左/右
- 7. jQuery:向左滑動並向右滑動
- 8. android左右滑動gridView
- 9. 從左到右滑動Divider
- 10. 向右或向左滑動
- 11. 左右滑動圖像android
- 12. 滑動表右/左與jQuery
- 13. 模擬左右滑動div
- 14. Android從左至右滑動
- 15. javascript滑動div左/右
- 16. 從左向右滑動Div
- 17. 鈦:左/右滑動窗口
- 18. 左右滑動隱藏的div,向右滑動活躍格
- 19. 滑動元件左/右/底部
- 20. Jquery滑塊左右滑動問題
- 21. Sencha Touch/HTML5從左到右滑動事件/效果
- 22. 在ViewController和UITextView上滑動左右事件
- 23. 左右滑動即可事件點擊一個按鈕
- 24. 向左或向右滑動並從左上角滑動更多
- 25. 向左滑動並向右滑動對活動的動畫
- 26. UIViewController忽略左/右滑動移動
- 27. 在活動上滑動左/右效果
- 28. 模擬左/右滑動動畫轉換
- 29. 動畫沒有jQuery,左右滑動
- 30. 向左滑動右chnge活動
這個問題的答案在這裏詳細: http://stackoverflow.com/questions/937313/android-basic-gesture-detection –