所谓点击需要有一个按下和抬起的动作,如果区分短按和长按,则以抬起时相对于按下时的时间来区分。
同样的,滑动时,移动先于抬起,此时就不再触发点击事件了。
setOnItemClickListener() 触发的机制是, 手指点击时会产生触屏事件的 ACTION_DOWN, 这会根据xy坐标判断是哪个Item被点击, 手指提起时会触发ACTION_UP事件, 这样才是真正完成了整个点击的过程,从触发了setOnItemClickListener事件 ; 如果 你点击之后移动了 会触发ACTION_MOVE事件,当手指移动超过一定距离再提起时,就不会再触发setOnItemClickListener 事件。 希望能帮到你。
listView.setOnScrollListener(this);
private ListAdapter adapter = new ListAdapter();
listView.setAdapter(adapter);
class ListAdapter extends BaseAdapter {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return convertView;
}
}
listView.setOnItemClickListener(new MyListItemClickListener());
class MyListItemClickListener implements OnItemClickListener {
@Override
public void onItemClick(AdapterView> arg0, View view, int arg2,
long arg3) {
}
}
看到以上代码,你理解了吗???
这些监听里面,拖动是第一位的。然后,点击是第二位的。点击和拖动是有根本区别的。
楼上 “gaogaf | 六级 ” 说的很有道理。