Android编程开发ScrollView中ViewPager无法正常滑动问题解决方法
程序员文章站
2023-12-04 21:07:46
本文实例讲述了android编程开发scrollview中viewpager无法正常滑动问题解决方法。分享给大家供大家参考,具体如下:
这里主要介绍如何解决viewpag...
本文实例讲述了android编程开发scrollview中viewpager无法正常滑动问题解决方法。分享给大家供大家参考,具体如下:
这里主要介绍如何解决viewpager在scrollview中滑动经常失效、无法正常滑动问题。
解决方法只需要在接近水平滚动时scrollview不处理事件而交由其子view(即这里的viewpager)处理即可,重写scrollview的onintercepttouchevent函数,如下:
package cc.newnews.view; import android.content.context; import android.util.attributeset; import android.view.gesturedetector; import android.view.gesturedetector.simpleongesturelistener; import android.view.motionevent; import android.widget.scrollview; public class verticalscrollview extends scrollview { private gesturedetector mgesturedetector; public verticalscrollview(context context, attributeset attrs) { super(context, attrs); mgesturedetector = new gesturedetector(context, new yscrolldetector()); } @override public boolean onintercepttouchevent(motionevent ev) { return super.onintercepttouchevent(ev) && mgesturedetector.ontouchevent(ev); } class yscrolldetector extends simpleongesturelistener { @override public boolean onscroll(motionevent e1, motionevent e2, float distancex, float distancey) { /** * 如果我们滚动更接近水平方向,返回false,让子视图来处理它 */ return (math.abs(distancey) > math.abs(distancex)); } } }
再将xml中的scrollview改为<xxx.xxx.xxx.verticalscrollview>即包名.重写的scrollview的类名)即可。
本方法同样适用于scrollview中listview等其他view无法滚动。
希望本文所述对大家android程序设计有所帮助。