我正在使用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,但结果是一样的

最佳答案

您可以使用几种不同的方法。您可以查看MotionEvent.ACTION_MOVE并在onTouch中收到该消息后采取行动。您可以查看MotionEvent.ACTION_OUTSIDE
看看他们是否离开了您要检查的区域。

您还可以在滚动视图上放置一个侦听器,并在其移动时更改背景。 Synchronise ScrollView scroll positions - android

或者,您可以使用gestureListener进行检测。

关于android - Android onTouch Listener背景颜色更改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15908274/

10-11 22:36
查看更多