ScrollView嵌套WebView冲突解决方法

Android中WebView用来加载html页面,自带滑动效果。ScrollView同样也是自带滑动效果,在项目中如果需要WebView和一些其他view比如TextView一起滑动的话就必须外面嵌套一层ScrollView,这时问题就来了,嵌套之后ScrollView的滑动和WebView的滑动就会有冲突,WebView的滑动不流畅。下面就是解决方案:
自定义一个ScrollView
public class MyScrollView extends ScrollView { p rivate G estureDetector mGestureDetector; Vi ew.O n TouchListener mGestureListener; publ ic MyS c rollView(Con t ext con text, Attr ibuteSet att rs) { super (cont ext, attrs); mGestureDetector = new G e stu r eDetector(conte xt, new YS cro l lDetector()); setFadingEdgeLength(0); } @Override public bool ean on InterceptTouchEvent(MotionEvent ev) { return super .onInt e rceptT ouchEvent(ev) && mGestureD et ector.onTouchEven t (ev); } // Return false i f we're scrol l in g in the x direct io n class YScrollDet ector extends SimpleO nGestureL istener { @Override pub lic boole an onS croll( MotionEvent e1, Mo tionEvent e 2, fl oat distanc eX, float distanceY) { if (Math.abs(distan ce Y) > M a th.abs(distance X ) ) { return true; } return false; } }}
上面代码中onInterceptTouchEvent方法是关键,重写这个方法使如果ScrollView有touch事件时不被拦截,这样只要ScrollView有touch事件优先处理,这样就保证了滑动的流畅。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值