我正在使用一個項目,我想通過在屏幕上滑動手指從一個活動跳到另一個活動。從左向右滑動意味着要進行下一個活動。從右向左滑動意味着要返回上一個活動活動。因爲我想重複使用這些功能,所以我不想每次重複整個代碼。使用手指輕掃從一個活動移動到下一個活動。 (Android項目)
我用Google搜索了一下,發現 move activity to another activity using Finger
但它似乎並沒有太大的幫助,因爲缺乏完善的ANS。
我正在使用一個項目,我想通過在屏幕上滑動手指從一個活動跳到另一個活動。從左向右滑動意味着要進行下一個活動。從右向左滑動意味着要返回上一個活動活動。因爲我想重複使用這些功能,所以我不想每次重複整個代碼。使用手指輕掃從一個活動移動到下一個活動。 (Android項目)
我用Google搜索了一下,發現 move activity to another activity using Finger
但它似乎並沒有太大的幫助,因爲缺乏完善的ANS。
而不是創建這麼多的活動,爲什麼你不考慮使用View Pager與片段尋呼機適配器。
您將擁有多個片段,這些片段將在右側滑動和左側滑動時可用。這將是非常有效的。你將能夠看到動畫。
但是在活動的情況下,您將不得不檢測滑動,然後啓動另一個活動。
此外,看一看下面的鏈接: How to implement a ViewPager with different Fragments/Layouts
你應該實現OnTouchListener
並將其設置在onCreate
方法。
view.setOnTouchListener(new MyOnTouchListener(this));
和這裏的聽衆:
public class MyOnTouchListener extends View.OnTouchListener {
final GestureDetector gesture;
public MyOnTouchListener(Activity activity) {
gesture = new GestureDetector(activity, new MyGestureListener());
}
@Override
public boolean onTouch(View v, MotionEvent event) {
return gesture.onTouchEvent(event);
}
}
public class MyGestureListener extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onDown(MotionEvent e) {
return true;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
final int SWIPE_MIN_DISTANCE = 120;
final int SWIPE_MAX_OFF_PATH = 250;
final int SWIPE_THRESHOLD_VELOCITY = 200;
try {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) {
return false;
}
if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
// TODO action for right to left swipe
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
// TODO action for left to right swipe
}
} catch (Exception e) {
// nothing
}
return super.onFling(e1, e2, velocityX, velocityY);
}
}
你應該使用片段,片段ViewPager。 – SripadRaj