问题描述
当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)}}
参考资料
/a/56157.html