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 に答える