请教:如何区别点击事件和滑屏事件,不要通过判断滑动距离的那种判断方式 请教:如何区别点击事件和滑屏事件,不要通过判断滑动距离的那种判断方式 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以在代码中实现GestureDetector的OnGestureListener事件在这个接口中onDown(MotionEvent e) 是点击事件onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)是滑屏事件你可以参考下GridView pageView = (GridView) LayoutInflater.from(this).inflate( R.layout.app_grid, null).findViewById(R.id.app_grid);viewFlipper.addView(pageView);pageView.setOnTouchListener(this);/** * 关键,手势检测器 */ public boolean onTouch(View v, MotionEvent event) { return this.detector.onTouchEvent(event); }源码地址请详见:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=108411 我遇到的问题是这样的:界面上有listview,既有滑屏,又有onItemClickListener事件,如何处理这个冲突 @Override public boolean dispatchTouchEvent(MotionEvent ev) { // TODO Auto-generated method stub mDetector.onTouchEvent(ev); mTextView.onTouchEvent(ev); mScroll.onTouchEvent(ev); return true; }在派发事件中对所有的onTouchEvent()事件进行派发,顺序只是谁先处理,没有多大关系注意后面一定是return true;因为return true就意味着dispatchTouchEvent会被系统响应比如你的可以是这样:@Override public boolean dispatchTouchEvent(MotionEvent ev) { // TODO Auto-generated method stub mDetector.onTouchEvent(ev);//处理ListView的滑屏 mListView.onTouchEvent(ev);//处理ListView的点击事件包括onItemClickListener return true; } 几个关于AVD的问题 opencv -android的使用问题 android系统权限SET_PREFERRED_APPLICATIONS怎么获取 wifi的模式问题 请教:播放流媒体 给CL的一封信 2.2程序完全退出,现在有好的办法吗 如何设置视图的默认焦点 蓝牙设备可被搜索时间问题.. 编译android源码问题 如何让多个activity分享蓝牙连接? LocationListener无法触发onStatusChanged事件
在这个接口中onDown(MotionEvent e) 是点击事件
onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)是滑屏事件
你可以参考下GridView pageView = (GridView) LayoutInflater.from(this).inflate(
R.layout.app_grid, null).findViewById(R.id.app_grid);viewFlipper.addView(pageView);
pageView.setOnTouchListener(this);/**
* 关键,手势检测器
*/
public boolean onTouch(View v, MotionEvent event) {
return this.detector.onTouchEvent(event);
}
源码地址请详见:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=108411
界面上有listview,既有滑屏,又有onItemClickListener事件,如何处理这个冲突
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
// TODO Auto-generated method stub
mDetector.onTouchEvent(ev);
mTextView.onTouchEvent(ev);
mScroll.onTouchEvent(ev);
return true;
}在派发事件中对所有的onTouchEvent()事件进行派发,顺序只是谁先处理,没有多大关系
注意后面一定是return true;因为return true就意味着dispatchTouchEvent会被系统响应
比如你的可以是这样:@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
// TODO Auto-generated method stub
mDetector.onTouchEvent(ev);//处理ListView的滑屏
mListView.onTouchEvent(ev);//处理ListView的点击事件包括onItemClickListener
return true;
}