您的位置:首页 > 移动开发 > Android开发

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

2015-07-22 11:05 459 查看


如上图所示:

界面分为页签(HorizontalScrollView)和内容展示(ViewPager)二部分。

每个页签(头条,推荐...)对应一个WebView 。

每个WebView又包涵图片展示区(可以左右滚动查看图片)和数据内容展示区(一个内容集合 类似android的listView)。

内容展示(ViewPager)是支持左右手势来查看上/下一个页签内容 比如在“头条”页签时可以向右滑动切换到"推荐"页签。如果当前对手势事件不做处理,那么WebView的图片展示区的左右手势将失效,它的左右手势已经被 内容展示(ViewPager)处理。

我想到的解决办法是由js告诉界面 WebView的图片展示区的Rect(位置和大小x,y,w,h) 然后 内容展示(ViewPager)在处理手势时如果当前手势是发生在这个Rect中的则将手势控制权交给webview,自己不处理这个手势。

js调用代码如下图:




图中"picBanner"是指图片展示区的id, "Native"是指本地代码对象(webView.addJavascriptInterface()方法设置的对象),"Native.call"是指本地代码中有一个call(String:事件名称,String:事件的参数)方法。

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



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



本人从阿里出来,现在在杭州一家创业公司(杭州菲助科技:公司现有的产品:英语趣配音/老外趣聊/少儿趣配音,用户量已经达到400万),有兴趣一起工作的直接联系QQ:421134693
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息