在ListView项目中,我想设置一个触摸监听器,一般来说我只想执行一些操作,然后再将触摸事件委托给上一个触摸监听器。
类似的东西:
convertView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// do something else
convertView.dispatchTouchEvent(event);
return true;
}
});
不起作用,因为它会导致StackOverflow
。我能在这做什么?
答案 0 :(得分:1)
委托“其他人”处理触摸事件的方法是将其标记为未使用
通过让处理程序返回false来执行此操作:
convertView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// do your staff else
// do not call dispatchTouchEvent(event)
return false; <------------ inform Android event was not consumed
}
});
这将允许您添加处理的增量(“做你的员工”)并传递, 可能到其容器视图,以便进一步处理。