我想在ListView
用户触摸项目时为项目设置动画,并在触摸结束时向后执行动画。
我已经尝试通过覆盖onTouchEvent
列表项来做到这一点,但是如果我在处理事件时返回 true,我将不再收到OnItemClickListener
调用,因为我已经消耗了触摸事件,如果我返回 false,我不会收到回调用户停止触摸视图。
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
//handle onclick
}
});
@Override
public boolean onTouchEvent(MotionEvent event) {
Log.v(TAG, event.getActionMasked() + "");
if(event.getActionMasked() == MotionEvent.ACTION_DOWN) {
Animation animation = createColorAnimation(false);
animation.setDuration(500);
startAnimation(animation);
return true;
} else if(event.getActionMasked() == MotionEvent.ACTION_UP || event.getActionMasked() == MotionEvent.ACTION_CANCEL) {
Animation animation = createColorAnimation(true);
animation.setDuration(500);
startAnimation(animation);
return true;
}
return super.onTouchEvent(event);
}
我想接收事件ACTION_UP
和电话,我该如何实现?ACTION_CANCEL
onTouchEvent
OnItemClickListener