ViewPage + fragement+WebView 滑动卡死

来源:互联网 发布:新加坡 经济形势 数据 编辑:程序博客网 时间:2024/06/03 11:19
卡死原因就是viewPager 的 public boolean onTouchEvent(MotionEvent evt)方法作怪,只要修改了这个方法就可以解决了
重现卡死的方法:把 public boolean onTouchEvent(MotionEvent evt)方法 body体去掉,return false;就可以重现
解决方法:
public class MyViewPager extends ViewPager {        public MyViewPager(Context context) {          super(context);      }        public MyViewPager(Context context, AttributeSet attrs) {          super(context, attrs);      }        PointF downPoint = new PointF();      OnSingleTouchListener onSingleTouchListener;        @Override      public boolean onTouchEvent(MotionEvent evt) {          switch (evt.getAction()) {          case MotionEvent.ACTION_DOWN:              // 记录按下时候的坐标              downPoint.x = evt.getX();              downPoint.y = evt.getY();              if (this.getChildCount() > 1) { //有内容,多于1个时                  // 通知其父控件,现在进行的是本控件的操作,不允许拦截                  getParent().requestDisallowInterceptTouchEvent(true);              }              break;          case MotionEvent.ACTION_MOVE:              if (this.getChildCount() > 1) { //有内容,多于1个时                  // 通知其父控件,现在进行的是本控件的操作,不允许拦截                  getParent().requestDisallowInterceptTouchEvent(true);              }              break;          case MotionEvent.ACTION_UP:              // 在up时判断是否按下和松手的坐标为一个点              if (PointF.length(evt.getX() - downPoint.x, evt.getY()                      - downPoint.y) < (float) 5.0) {                  onSingleTouch(this);                  return true;              }              break;          }          return super.onTouchEvent(evt);      }        public void onSingleTouch(View v) {          if (onSingleTouchListener != null) {              onSingleTouchListener.onSingleTouch(v);          }      }        public interface OnSingleTouchListener {          public void onSingleTouch(View v);      }        public void setOnSingleTouchListener(              OnSingleTouchListener onSingleTouchListener) {          this.onSingleTouchListener = onSingleTouchListener;      }  }  


引用了一下博文文章:

http://blog.csdn.net/gaojinshan/article/details/17953895


1 0
原创粉丝点击