【问题标题】:Scroll event conflict in Android WebView when WebView's parent is a Viewpager当 WebView 的父级是 Viewpager 时,Android WebView 中的滚动事件冲突
【发布时间】:2014-10-20 18:38:56
【问题描述】:

** 如题所说,当WebView的parent是Viewpager时,音频或视频元素中的进度条效果不佳。有时很难拖动或可能导致 Viewpager 翻转。那么,有人知道如何解决这个问题吗?请帮忙!!!非常感谢! **

【问题讨论】:

    标签: android webview scroll android-viewpager conflict


    【解决方案1】:

    你可以在 webview 上触摸时暂时禁用父触摸,也可以根据情况做任何你想做的事情。 下面是示例代码。我写了scrollView的代码,你可以随意使用

        webView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View __v, MotionEvent __event) {
                if (__event.getAction() == MotionEvent.ACTION_DOWN) {
                    //  Disallow the touch request for parent scroll on touch of child view
                    requestDisallowParentInterceptTouchEvent(__v, true);
                } else if (__event.getAction() == MotionEvent.ACTION_UP || __event.getAction() == MotionEvent.ACTION_CANCEL) {
                    // Re-allows parent events
                    requestDisallowParentInterceptTouchEvent(__v, false);
                }
                return false;
            }
        });
    
    
    private void requestDisallowParentInterceptTouchEvent(View __v, Boolean __disallowIntercept) {
        while (__v.getParent() != null && __v.getParent() instanceof View) {
            if (__v.getParent() instanceof ScrollView) {
                __v.getParent().requestDisallowInterceptTouchEvent(__disallowIntercept);
            }
            __v = (View) __v.getParent();
        }
    }
    

    【讨论】:

    • 我不想影响整个 WebView,只影响音频或视频元素。但是现在我无法在 WebView 中获取 childView。我使用hierarchyviewer.bat查看视图树,我发现WebView没有childView!有什么方法可以获取音频或视频元素视图?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    相关资源
    最近更新 更多