问题描述:
在activity中实现了一个手势检测器detector,用OnGestureListener能检测到手势滑动,重写onFling()方法判断到从左向右滑动后就finish()这个activity,activity
中重写的onTouchEvent方法,用手势检测器detector处理滑动事件,若这个滑动event符合你重写的滑动条件,就执行finish。
但是activity中有一个子控件listview,左右滑动的时候就冲突了。但是listview可以上下滑动。
解决方案:
可以让listview也监听滑动事件,然后在listview的onTouch()方法中用你写好的手势检测器处理掉listview监听到的滑动事件event就不会冲突了。
listview.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
detector.onTouchEvent(event);
return false;
}
});
在listview的ontouch()方法中用自己定义的手势先把滑动的event处理掉,就能解决冲突的问题了。activity的父布局也是在重写的onTouchEvent方法中用手势处理了
滑动。
本文介绍了解决Android应用中ListView与自定义手势检测器之间的滑动事件冲突的方法。通过让ListView监听滑动事件并使用手势检测器处理这些事件,可以避免两者间的交互冲突。
795

被折叠的 条评论
为什么被折叠?



