美文网首页安卓开发
解决ViewPager嵌套WebView时滑动冲突问题

解决ViewPager嵌套WebView时滑动冲突问题

作者: 蓝不蓝编程 | 来源:发表于2020-05-15 17:12 被阅读0次

    问题描述

    当ViewPager里嵌套WebView时,默认WebView是处理不了滑动事件的.这样的话,如果WebView里内容一屏展示不完,就没法查看完整内容了.

    解决方案

    定制WebView,覆写onTouchEvent和onOverScrolled两个方法.
    这样当WebView内部内容没有滑动到最边上时,滑动事件都在自己内部处理;如果到了边上,就交给ViewPager来做翻页.

    class MyWebView(context: Context, attrs: AttributeSet) : WebView(context, attrs) {
        override fun onTouchEvent(event: MotionEvent): Boolean {
            if (event.action == MotionEvent.ACTION_DOWN) {
                parent.requestDisallowInterceptTouchEvent(true)
            }
            return super.onTouchEvent(event)
        }
    
        override fun onOverScrolled(scrollX: Int, scrollY: Int, clampedX: Boolean, clampedY: Boolean) {
            if (clampedX) {
                parent.requestDisallowInterceptTouchEvent(false)
            }
            super.onOverScrolled(scrollX, scrollY, clampedX, clampedY)
        }
    }
    

    参考资料

    https://www.codercto.com/a/56157.html

    相关文章

      网友评论

        本文标题:解决ViewPager嵌套WebView时滑动冲突问题

        本文链接:https://www.haomeiwen.com/subject/wpxhohtx.html