ImageView внутри ScrollView с событием onTouch() или onClick()

У меня есть ImageView внутри ScrollView, ImageView кликабелен и открывает новый Activity,

Всякий раз, когда я прокручиваю свой ScrollView, сначала дотрагиваясь до изображения (но пока не отпуская палец), и пытаюсь прокрутить его, срабатывает мой onTouch() или же onClick() метод (я пробовал с обоими...)

Вот мой код:

btnAdd.setOnTouchListener(new OnTouchListener() {
       @Override
       public boolean onTouch(View v, MotionEvent event) {
           Intent intent = new Intent(Intent.ACTION_EDIT);
           startActivity(intent);
           return true;
       }
});

Как я уже сказал, я также пытался с onClick()...

Что я делаю неправильно?

1 ответ

Решение

Когда OnTouchListener запускается, он прослушивает несколько действий (Action Down, Action Up и т. Д.) И выполняет их все, поэтому вы должны точно указать, когда вы хотите начать новое действие (в вашем случае для Action Up). Поэтому попробуйте использовать это:

 btnAdd.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_UP){
                Intent intent = new Intent(Intent.ACTION_EDIT);
                startActivity(intent);
            }
            return true;
        }
    });
Другие вопросы по тегам