提问者:小点点

禁用Android scrollview,但仍然允许点击滚动视图中的按钮


我希望能够防止用户能够在我的Android ScrollView中滚动,但仍然检测当他们点击滚动视图中的按钮。

我对ScrollView类进行了子类化,并对OnInterceptTouchEventOnTouchEvent方法进行了一些修改,但似乎不太正确。下面的代码停止了滚动,但似乎禁用了轻击(但不是全部,比如如果你不移动就上下移动,它可以工作,但如果你的手指在轻击时稍微移动,它就不会注册)。我还删除了onInterceptTouchEvent,它几乎可以正常工作,但当用户移除手指时,scrollview仍然滚动。

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev)
    {
        App.log("onInterceptTouchEvent, with action : " + ev.getAction());
        switch(ev.getAction())
        {
            case MotionEvent.ACTION_MOVE:
                return true;
        }
        return super.onInterceptTouchEvent(ev);

    }

    @Override
    public boolean onTouchEvent(MotionEvent ev)
    {
        App.log("onTouchEvent, with action : " + ev.getAction());
        switch(ev.getAction())
        {
            case MotionEvent.ACTION_MOVE:
                return false;
        }
        return super.onTouchEvent(ev);
    }


共1个答案

匿名用户

最后,我发现下面的解决方案正好做到了我所需要的:

@Override
public boolean onTouchEvent(MotionEvent ev)
{
    App.log("onTouchEvent, with action : " + ev.getAction());
    switch(ev.getAction())
    {
        case MotionEvent.ACTION_MOVE:
            return false;
    }
    return super.onTouchEvent(ev);
}