如何禁用滚动垂直& WebView中是否水平?

时间:2015-05-06 02:30:40

标签: android scroll webview

我在以下方面找到了类似的接受答案: Disable scrolling in webview?

示例代码为:

// disable scroll on touch
webview.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        return (event.getAction() == MotionEvent.ACTION_MOVE);
    }
});

但接受的答案并不能满足我的要求,因为视频&音频进度条的触摸移动事件也被禁用(嵌入我的WebView),因此我无法拖动进度条。

还有另一种解决方法吗?期待你的回复!谢谢!

1 个答案:

答案 0 :(得分:1)

我在这个问题中一直尝试:Disable scrolling in webview?

最后我发现底部有两种方式:

第一个(由GDanger回答):扩展WebView并覆盖overScrollBy()方法和return false

public class NoScrollWebView extends WebView {
    ...
    @Override
    public boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, 
                                int scrollRangeX, int scrollRangeY, int maxOverScrollX, 
                                int maxOverScrollY, boolean isTouchEvent) {
        return false;
    }
}

第二个(由steelbytes回答):覆盖onScrollChanged()方法。

@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
    if (bAllowScroll) {
        super.onScrollChanged(l, t, oldl, oldt);
    } else if (l! = 0 || t != 0) {
        super.scrollTo(0, 0);
    }
}