zoukankan      html  css  js  c++  java
  • 解决screview与子view滑动冲突

    在android开发过过程中,经常会用到ScrollView,在布局中ScorellView会放许多子View。

    我们都知道ScrollView是可以滑动的,而有时放的一些子View也是可以滑动的,比如:ListView、ViewFlow...,这样就很容易造成滑动事件的冲突,

    本文是在ScrollView中放了ViewFlow的情况下。

    用一个类去继承ScrollView,并重写ScrollView的onInterceptTouchEvent事件

     1 public class ScrollViewExtend extends ScrollView {
     2 
     3     private float xDistance, yDistance, xLast, yLast;
     4 
     5     public ScrollViewExtend(Context context, AttributeSet attrs) {
     6         super(context, attrs);
     7     }
     8 
     9     @Override
    10     public boolean onInterceptTouchEvent(MotionEvent ev) {
    11 
    12         // 通过滑动的幅度大小来判断是上下滑动还是左右滑动
    13         switch (ev.getAction()) {
    14         case MotionEvent.ACTION_DOWN:
    15             xDistance = yDistance = 0f;
    16             xLast = ev.getX();
    17             yLast = ev.getY();
    18             break;
    19         case MotionEvent.ACTION_MOVE:
    20             final float curX = ev.getX();
    21             final float curY = ev.getY();
    22 
    23             xDistance += Math.abs(curX - xLast);
    24             yDistance += Math.abs(curY - yLast);
    25             xLast = curX;
    26             yLast = curY;
    27             if (xDistance > yDistance) {
    28                 return false;
    29             }
    30         }
    31 
    32         return super.onInterceptTouchEvent(ev);
    33     }
    34 
    35 }
  • 相关阅读:
    thinkphp 学习1-模型
    apache 2.4目录权限
    标头 header()函数的用法
    PHP面试题一
    php学习
    如何执行超过一百兆(100MB)的sql脚本?
    jquery-numberformatter插件
    xpath 获取父级,和同级
    Vue el-table 行编辑验证、重置
    Vue 弹窗一个新增编辑页面
  • 原文地址:https://www.cnblogs.com/longdunxiong/p/4935630.html
Copyright © 2011-2022 走看看