Страницы

Поиск по вопросам

суббота, 8 февраля 2020 г.

OnTouchListener не работает

#android #camera #ontouchlistener


Не работает данный кусок кода, не могу понять почему.
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;}}});

    


Ответы

Ответ 1



Попробуйте другое событие. 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.

Комментариев нет:

Отправить комментарий