在滚动视图中获取滚动方向?

U A*_*los 1 android

这应该是非常简单的但似乎我错过了一些东西 - 你如何计算ScrollView的滚动事件的方向(左/右/上/下)?

首先想到的是存储getScrollX()和getScrollY(),然后在下一次调用onTouchListener时对它们进行比较.这是正确的做事方式吗?

我正在实现一个自定义Horizo​​ntalScrollView,我只需要在一个方向上禁用滚动和页面滑动.

Kni*_*edi 8

研究告诉我,那个案例没有滚动监听器.
你可以试试你的approch.
我要尝试的另一件事是覆盖onScrollChanged(之前提供滚动位置),因此创建自己的ScrollView

更新:
这个适合我.它向右滚动但不向左滚动.

public class CustomScrollView extends HorizontalScrollView {

    public CustomScrollView(Context context) {
        super(context);
    }

    public CustomScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public CustomScrollView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    public void onScrollChanged(int w, int h, int ow, int oh) {
        if (w < ow) {
            scrollTo(ow, h);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)