OnTouchListener не работает

Рейтинг: 3Ответов: 2Опубликовано: 02.04.2015

Не работает данный кусок кода, не могу понять почему. sv- это SurfaceView, которое используется для отображения камеры(это для заметки).

sv.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
                if(motionEvent.getAction() == MotionEvent.ACTION_DOWN){
                    Toast.makeText(MainActivity.this, "onTouch", Toast.LENGTH_SHORT).show();
                    return true;}}});

Ответы

▲ 5

Попробуйте другое событие.

 sv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(View.getContext(), "Clicked", Toast.LENGTH_SHORT).show();
                Log.v("W", "Clicked");
            });
▲ 2

Делал список на основе ListView. Нужны были свайпы, скрол и *синглтачи*. Не хотелось использовать или кастомить никакие GestureDetector-ы.

Но одновременное вешание нескольких *листенеров* на одну вьюху заканчивалось только тем что приходилось делать костыли которые намного тяжелее чем любой GestureDetector.

Потому, пришлось повесить на вьюху OnTouchListener, из метода onTouch передавать событие касания в GestureDetectorCompat, и уже в его методе onScroll реализовал саму логику *свайпа*. *Синглтачи* обрабатывал средствами того же `GestureDetectorCompat.