【问题标题】:Android onTouch Listener Background Color ChangeAndroid onTouch 监听器背景颜色变化
【发布时间】:2013-04-09 17:15:27
【问题描述】:

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

【问题讨论】:

  • 您可以尝试在大小写条件下使用小写的“v”。

标签: android ontouchlistener


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-13
    • 2017-04-14
    • 2021-10-02
    • 2014-09-14
    • 1970-01-01
    • 2021-02-13
    • 2017-12-10
    • 2021-11-10
    相关资源
    最近更新 更多