我正在使用一个项目,我想通过在屏幕上滑动手指从一个活动跳到另一个活动。从左向右滑动意味着要进行下一个活动。从右向左滑动意味着要返回上一个活动活动。因为我想重复使用这些功能,所以我不想每次重复整个代码。使用手指轻扫从一个活动移动到下一个活动。 (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