使用手指轻扫从一个活动移动到下一个活动.(安卓项目)



我正在处理一个项目,我想通过在屏幕上滑动手指从一个活动转到另一个活动。从左向右滑动意味着转到下一个活动。从右向左滑动意味着返回到以前的活动。由于我想重复使用这些功能,因此我不想每次都重复整个代码。

我用谷歌搜索过它,发现使用手指将活动移动到另一个活动

但由于缺乏完美的安斯,它似乎并没有太大的帮助。

与其创建这么多活动,不如考虑将 View Pager 与片段寻呼机适配器一起使用。

您将有多个片段,这些

片段将在右滑动和左滑动时可用。它也将非常有效。您将能够看到动画。

但是,如果发生活动,则必须检测滑动,然后启动另一个活动。

另外,请查看以下链接:如何实现具有不同片段/布局的ViewPager

您应该实现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);
    }
}

最新更新