Предотвращение получения сенсорными событиями ImageView при прокрутке

Я делаю приложение с большим количеством ImageView, и в некоторых из них мне нужно было прикрепить прослушиватель прикосновений. Выполняя это, я столкнулся с проблемой. Если указатель удерживался в месте, где к нему прикреплялся ImageView с сенсорными слушателями, и он собирался создать прокручиваемое событие, кажется, что существует боевая сцена между View и ScrollView в w/c, где событие действительно произошло, и в w/c событие должно принадлежать. Экран прокручивается с высокой скоростью, затем вернется туда, где был удален первый указатель, поэтому это означает, что это нежелательное поведение.

Установка onTouchListener в ImageView делает прокрутку непростой и нежелательной, как я могу предотвратить ImageView от получения событий касания при прокрутке?


Некоторые из кодов

Макет: act_map_view.xml

<?xml version="1.0" encoding="utf-8"?>

<com.nkraft.mobiletomblocator.CustomVScroll
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/vScroll"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars="none" >

    <com.nkraft.mobiletomblocator.CustomHScroll 
        android:id="@+id/hScroll"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scrollbars="none" >

            <com.nkraft.mobiletomblocator.CustomGridLayout
                android:id="@+id/map_grid"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

            </com.nkraft.mobiletomblocator.CustomGridLayout>

    </com.nkraft.mobiletomblocator.CustomHScroll>

</com.nkraft.mobiletomblocator.CustomVScroll>

Примечания:

  • GridLayout заполняется ImageView во время выполнения.
  • Я настроил свой горизонтальный и вертикальный ScrollView, чтобы я мог прокручивать в обоих направлениях одновременно i.e diagonal scrolling

Ответ 1

Из заметок, которые я упоминал, я понял ключ от проблемы, с которой я сейчас сталкиваюсь. Я думаю, что этот вопрос был рассмотрен до того, как была внедрена стандартная панель прокрутки. Основная причина, по которой это происходит, заключается в том, что я расширил класс полос прокрутки и полностью заменил его поведение по умолчанию. Поэтому для достижения того, что я хочу (полоса прокрутки с диагональной прокруткой), я следую этой post и заменяю как свое вертикальное, так и горизонтальное прокрутки с помощью этого TwoDScrollView, также спасибо за сообщение , направляющее меня к нему.