在 Android Studio 中控制速度

Controlling Velocity in Android Studio

我已经设法在用户向上滑动时打开一个新的 activity,但是他们必须以一定的速度向上滑动才能启动新的 activity。

会不会是 class 速度的原因?我可以控制它,甚至可以将其更改为仅检测运动吗?

代码

public class HomePage extends AppCompatActivity {

    private GestureDetectorCompat gestureDetectorCompat;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home_page);

        gestureDetectorCompat = new GestureDetectorCompat(this, new MyGestureListener());
    }

    @Override
    public boolean onTouchEvent (MotionEvent event) {
        this.gestureDetectorCompat.onTouchEvent(event);
        return super.onTouchEvent(event);
    }

    class MyGestureListener extends GestureDetector.SimpleOnGestureListener {
        //handle 'swipe up' action only

        @Override
        public boolean onFling(MotionEvent event1, MotionEvent event2,
                               float velocityX, float velocityY){

            /*
            Toast.makeText (getBaseContext(),
            event1.toString() + "\n\n" +event2.toSting(),
            Toast.LENGTH_SHORT).show();
             */

            if (event2.getX() < event1.getX()){
                Toast.makeText(getBaseContext(),
                        "Swipe Up - startActivity()",
                        Toast.LENGTH_SHORT).show();

            //switch another activity
                Intent intent = new Intent(
                        HomePage.this, New_Page.class);
                startActivity(intent);
            }

                return true;
            }
        }
    }

I have managed to get a new activity to open when the user swipes up

不正确

当用户 Flings 向上时,您已成功打开一个 Activity,flinging 已将最小速度(由 SDK class 确定)设置为算作一掷千金。

如果您希望应用程序以较慢的速度打开,您可能需要查看更自定义的解决方案或开始查看 SimpleOnGestureListener

onScroll