-1

我有一个ScrollView可以包含多个WebViews. 我知道将可滚动视图保留在另一个视图中不是正确的方法,但这是我的应用程序的基本要求。我setVerticalScrollBarEnabled()在所有WebViews. focusabilityScrollView's 的孩子中也被禁用,descendantFocusability=blocksDescendants.我只希望 ScrollView 滚动。

当我尝试滚动时,Android 设备上没有问题,因为它是通过触摸完成的。但是,问题是当我运行我的APK内部Chromebook并尝试进行鼠标滚轮滚动时WebViewScrollView不滚动。Chromebook 触控板工作正常,但当我滚动时它会滚动WebView。问题仅在于鼠标滚轮滚动。看起来WebView正在消耗滚动事件并且它没有冒泡到ScrollView.

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

4

1 回答 1

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;
    }
}
于 2017-11-07T05:39:45.340 回答