如何在Android WebView中禁用鼠标滚轮滚动?

时间:2017-11-06 10:44:07

标签: android android-webview android-scrollview chromebook chromium-os

我有ScrollView,可以包含多个WebViews。我知道在另一个内部保持可滚动视图不是正确的方法,但这是我的应用程序的基本要求。我已在所有setVerticalScrollBarEnabled()中禁用了垂直滚动(使用WebViews)。使用focusability的{​​{1}}个孩子中的ScrollView也被停用我只想滚动ScrollView。

当我尝试滚动时,Android设备上没有任何问题,因为它是在触摸时完成的。但问题是,当我在descendantFocusability=blocksDescendants.内运行APK并尝试在Chromebook上滚动鼠标滚轮时,WebView不会滚动。 Chromebook Trackpad工作正常,当我滚动ScrollView时滚动它。问题仅在于鼠标滚轮滚动。看起来WebView正在消耗滚动事件,而不是冒充WebView

有人可以建议解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我找到了解决方法。只需继承WebView并覆盖onGenericMotionEvent方法。

public class PreviewWebView extends WebView {

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

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

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

    @Override
    public boolean onGenericMotionEvent(MotionEvent event) {
        return false;
    }
}