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_CANCELonTouchEventOnItemClickListener