处理js手势与android view手势的冲突




如上图所示:
界面分为页签(HorizontalScrollView)和内容展示(ViewPager)二部分。
每个页签(头条,推荐...)对应一个WebView 。
每个WebView又包涵图片展示区(可以左右滚动查看图片)和数据内容展示区(一个内容集合 类似android的listView)。
内容展示(ViewPager)是支持左右手势来查看上/下一个页签内容 比如在“头条”页签时可以向右滑动切换到"推荐"页签。如果当前对手势事件不做处理,那么WebView的图片展示区的左右手势将失效,它的左右手势已经被 内容展示(ViewPager)处理。
我想到的解决办法是由js告诉界面 WebView的图片展示区的Rect(位置和大小x,y,w,h) 然后 内容展示(ViewPager)在处理手势时如果当前手势是发生在这个Rect中的则将手势控制权交给webview,自己不处理这个手势。
js调用代码如下图:
77A8980F_BF01_48A8_A996_284D605D2586
图中"picBanner"是指图片展示区的id, "Native"是指本地代码对象(webView.addJavascriptInterface()方法设置的对象),"Native.call"是指本地代码中有一个call(String:事件名称,String:事件的参数)方法。

本地处理js的"divRects"事件代码如下图:



viewPager中处理的关键代码如下图:





本人从阿里出来,现在在杭州一家创业公司(杭州菲助科技:公司现有的产品:英语趣配音/老外趣聊/少儿趣配音,用户量已经达到400万),有兴趣一起工作的直接联系QQ:421134693

  • 1
    点赞
  • 2
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值