安卓viewpager嵌套webview的滑动冲突解决

本文介绍了在安卓应用中,当ViewPager内部嵌套WebView时遇到的滑动冲突问题及其解决方案。详细讲解了三种方法,包括通过触摸事件判断、JavaScript交互以及监听WebView滚动边界来实现滑动控制,最终推荐了第三种方法,即在WebView内容可滚动时禁用ViewPager的滑动,从而达到流畅的用户体验。
摘要由CSDN通过智能技术生成

问题描述

需求是这样的,viewpager内部嵌套多个不同的网页,滑动切换显示不同html5网页,想法是好的,但是遇到了一些问题。其中html网页中也会有一些类似viewpager的可横向滑动控件,当你尝试滑动html中的有滑动效果的控件时,发现整个外部viewpager都跟着滑动了,直接切换到另一个网页,哈哈哈,好棒

解决办法

解决办法有三个,其中第一个办法最苯,第二个还可以,但是略麻烦,第三个办法最完美,目前没发现什么问题,等不及的可以直接看第三个方法

方法1

将屏幕分为左中右三个区域,当滑动中间部分的时候禁掉外层viewpager的滑动,具体操作是在webview的ontouchevent中,通过判断触摸区域调用requestDisallowInterceptTouchEvent(true),当为true的时候,触摸事件就被webview拦截,不会传向父控件,viewpager自然不会滑动了,当然这么做,用户使用起来的话会非常蛋疼,而且现在很多手机都有全面屏幕手势操作,翻个页还不小心退出应用了,这不是搞笑的嘛,这种方法极其不推荐使用,还不如不滑动翻页,直接点tab了。

方法2

第二种方法是通过js和android之间通信,js获取html网页中可滑动控件的位置,然后传给android,安卓还是在webview的ontouchevent事件中判断触摸的位置,如果触摸在滑动控件上,就通过requestDisallowInterce

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值