我使用onTouchListener在用户手指按下时更改背景颜色,并在用户手指向上时更改回默认颜色。问题是,当用户的手指按下时,背景颜色会发生变化,但如果用户不抬起手指并开始滚动,背景颜色不会更改为默认值。请帮帮忙。
下面是我的代码:
V.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
V.setBackgroundColor(Color.BLUE);
break;
case MotionEvent.ACTION_UP:
V.setBackgroundColor(Color.BLACK);
break;
}
return true;
}
});我也尝试返回false,但结果是相同的
发布于 2013-04-10 02:18:56
您可以使用几种不同的方法。您可以查看MotionEvent.ACTION_MOVE,并在您的onTouch中收到它时采取行动。你可以查看MotionEvent.ACTION_OUTSIDE,看看他们是否已经离开了你正在检查的区域。
您还可以将侦听器放在滚动视图上,并在它移动时更改背景。Synchronise ScrollView scroll positions - android
或者,您可以使用gestureListener来检测这一点。
https://stackoverflow.com/questions/15908274
复制相似问题