android无法在scrollview上使用GestureListener

时间:2013-10-10 17:01:48

标签: android scrollview

在我的Android应用程序中,我有一个线性布局。在其中,有一个包含多行文本视图的滚动视图。

我尝试添加一个GestureListener来添加从左向右移动以将滚动视图滚动到下一页的功能,但我发现GestureListener无法捕获翻转动作。

如何实施上述行为?感谢

1 个答案:

答案 0 :(得分:0)

您必须使用OnTouchListener代替。它不是很好,但确实有效。这是我之前做的一个:

scrollView.setOnTouchListener(new OnTouchListener() {
    private float mDownX;
    private float mDownY;
    private boolean mDown = false;

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            mDownX = event.getX();
            mDownY = event.getY();
            mDown = true;
            return false;

        case MotionEvent.ACTION_MOVE:
            if (!mDown) {
                mDownX = event.getX();
                mDownY = event.getY();
                mDown = true;
            }

            return false;

        case MotionEvent.ACTION_UP:
            if (!mDown)
                return false;

            mDown = false;
            float upX = event.getX();
            float upY = event.getY();

            if (Math.abs(upY - mDownY) > SWIPE_MAX_OFF_PATH
                    || Math.abs(upX - mDownX) < SWIPE_MIN_DISTANCE)
                return false;

            int position1 = position;

            if (upX > mDownX)
                // left to right swipe
            else
                // right to left swipe
                            return false;

        default:
            return false;
        }
    }
});