2

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

4

1 回答 1

2

您可以使用几种不同的方法。您可以查看 MotionEvent.ACTION_MOVE 并在您的 onTouch 中收到它时采取行动。您可以查看 MotionEvent.ACTION_OUTSIDE 并查看他们是否已离开您正在检查的区域。

您还可以在滚动视图上放置一个侦听器,并在它移动时更改背景。同步 ScrollView 滚动位置 - android

或者,您可以使用gestureListener 并检测到它。

于 2013-04-09T18:18:56.380 回答