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