2015-05-06 54 views
1

我发现类似的接受的答案: Disable scrolling in webview?如何在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

在同一篇文章中还有进一步的答案 - 全部失败? – Kiran

+0

谢谢你的提醒,我一路试过,最后我在底部找到了两条路。^^ – codezjx

回答

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); 
    } 
}