触摸和点击的冲突以及手势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;
}
}
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;
}
}
相关文章推荐
- android使用GestureDetector实现手势下滑与ListView onTouchEvent 冲突问题 解决
- 关于ListView触摸事件和点击Item事件冲突解决方法
- iOS UITapGestureRecognizer手势和UIButton 以及UITabelView点击事件冲突
- 关于ListView触摸事件和点击Item事件冲突解决方法
- ItemTouchHelper源码分析 手势分析OnTouchEvent
- listview的onitemlongclick和onitemclick冲突,item中的button点击事件
- Android长按事件和点击事件问题处理,OnItemLongClickListener和OnItemClickListener冲突问题
- onTouchEvent用法解释以及触摸事件的传递机制
- android简单的手势分发(处理ListView的Item带有Button点击冲突问题)
- android: GridView onFling/onItemClickListener 滑动与点击事件 冲突
- Android长按事件和点击事件问题处理,OnItemLongClickListener和OnItemClickListener冲突问题
- Android长按事件和点击事件问题处理,OnItemLongClickListener和OnItemClickListener冲突问题
- 解决 cell的点击事件和触摸手势的冲突
- iOS 触摸 手势和tableView cell的点击冲突
- Custom view … overrides onTouchEvent but not performClick
- ListView触摸事件和Item点击事件冲突解决方法
- Android长按事件和点击事件问题处理,OnItemLongClickListener和OnItemClickListener冲突问题
- Android onTouchEvent, onClick及onLongClick的调用机制
- PopupWindow实现仿iOS QQ音乐上拉菜单栏(支持手势以及点击操作)
- onItemClickListener监听的整个item的点击。如何只监听那个framelayout的点击 onItemClickListener监听的整个item的点击。如何只监听那个framelayout的点击