我的Android应用程序中有一个自定义listview
。当用户按下列表中的项目时,我想更改按下的项目的背景颜色。这是该行为的代码:
tempView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
isDown = false;
tempView.setBackgroundColor(Color.parseColor("#f47920"));
}
if (event.getAction() == MotionEvent.ACTION_UP) {
tempView.setBackgroundResource(R.drawable.list_selector_focused);
}
if(event.getAction() == MotionEvent.ACTION_MOVE) {
tempView.setBackgroundResource(R.drawable.list_selector_focused);
}
return false;
}
});
但是当我在屏幕上“甩动”以滚动listview
时,也会标记一个项目,并且“按下”的颜色将是静态的。我怎么能避免这个?
答案 0 :(得分:1)
MotionEvent.ACTION_UP
返回true
以通知Android系统您处理了整个触摸事件,否则 onTouch()
将不会被捕获。