您的位置:首页 > 其它

触摸和点击的冲突以及手势onTouchEvent,performClick,performItemClick ,GestureDetector

2012-06-05 16:46 295 查看
//初始化手势监听

    public void init()

    {

        gestureDetector = new GestureDetector(new IGestureListener());

        gestureDetector.setIsLongpressEnabled(true);

    }

       

   @Override//处理点击事件,如果是手势的事件则不作点击事件 普通View   

//注:必须是        setClickable(true);    setLongClickable(true);

    public boolean performClick() {

        if(isGesture){

            return true;

        }else{

            return super.performClick();

        }

    }

    

    @Override//处理点击事件,如果是手势的事件则不作点击事件 ListView

    public boolean performItemClick(View view, int position, long id) {

        if(isGesture){

            return true;

        }else{

            return super.performItemClick(view, position, id);

        }

    }

    @Override//触摸事件转成手势事件

    public boolean onTouchEvent(MotionEvent ev)

    {   

        isGesture = gestureDetector.onTouchEvent(ev);

        return super.onTouchEvent(ev);

    }

    

//手势监听

    private class IGestureListener extends SimpleOnGestureListener{

        @Override

        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,float velocityY) {

            if (e2.getX() - e1.getX() > (getWidth()/4) && Math.abs(velocityX) > minVelocity) {

                Log.d(TAG," ---------- next "  );

                return true;

            } 

            return false;

        }

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  listview float class
相关文章推荐