Мгновенный щелчок в андроиде - PullRequest
0 голосов
/ 07 октября 2019

У меня есть адаптер с RecyclerView, который показывает некоторые элементы, и все в порядке для отображения, в моем выпуске я хочу нажать Мгновенный через метод OnTouch в Android

            holder.objectImage.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {


                    if(event.getAction() == MotionEvent.ACTION_DOWN){

                        Log.e("test", "ACTION_DOWN");

                        // Do what you want
                        return true;
                    }

                    if(event.getAction() == MotionEvent.ACTION_UP){


                        Log.e("test", "ACTION_UP");


                        // Do what you want
                        return true;
                    }

                    return false;
                }
            });

в этом коде ACTION_DOWN работает идеально каждый раз, но ACTION_UP не работает каждый раз

Как мне справиться с этой проблемой?

Ответы [ 2 ]

0 голосов
/ 07 октября 2019

Попробуйте, как показано ниже:

 holder.objectImage.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
            switch (event.getAction()) {
                   case MotionEvent.ACTION_DOWN:
                     Log.i("TAG", "touched down");
                   break;
                   case MotionEvent.ACTION_MOVE:
                     Log.i("TAG", "moving: (" + x + ", " + y + ")");                
                   break;
                   case MotionEvent.ACTION_UP:
                     Log.i("TAG", "touched up");
                   break;
             }

             return true;
            }
        });
0 голосов
/ 07 октября 2019

Вы можете попробовать, как показано ниже.

holder.objectImage.setOnTouchListener(new View.OnTouchListener() {
     @Override
     public boolean onTouch(View v, MotionEvent event) {
          if(event.getAction() == MotionEvent.ACTION_DOWN){

             Log.e("test", "ACTION_DOWN");

             // Do what you want
             // return true; remove this line
          }

          else if(event.getAction() == MotionEvent.ACTION_UP){

             Log.e("test", "ACTION_UP");

             // Do what you want
             // return true; remove this line
         }
         return true; // need to return true.
    }
});
...