Intereting Posts
Не удается создать папку на внешнем хранилище на Android Как найти все версии исходных кодов библиотек поддержки Android Как обернуть длинный текст в прядильщик Мигает экран при использовании веб-просмотра со вспышкой Как использовать http / 2 с Okhttp на устройствах Android? Как эта реализация «StickyScrollView» привязывает представление к вершине ScrollView? Невозможно создать обработчик внутри потока, который не вызвал Looper.prepare () внутри AsyncTask для ProgressDialog Как настроить плагин ADT в eclipse Дизайн макета Android XML-синтаксический анализ в Android? Клавиши захвата, введенные на виртуальную клавиатуру Android, используя javascript Не удалось синхронизировать Gradle: Версия: 8.4.0 ниже минимальной версии (9.0.0), необходимой для плагина google-services Остановка элементов при перемещении при использовании StaggeredGridLayoutManager Не удалось запустить «adb root» на корневом телефоне Android Google Play «Родные платформы», показывающие commons-io-2.4.jar

TextView внутри ViewPager перехватывает события касания

У меня есть ViewPager который содержит два фрагмента. В любом из фрагментов я могу коснуться места, проведите пальцем, чтобы переключиться на другой fragment . Один из фрагментов содержит список. Элементы в списке содержат один TextView и один ImageView . Проблема в том, что если перетаскивание началось с нажатия на ImageView , все в порядке. Но если это было из TextView , перетаскивание никогда не было известно ViewPager , в результате «плавное переключение» никогда не произойдет.

Какой-нибудь ключ к этому?

РЕДАКТИРОВАТЬ

Эта фотография должна показать, как мой графический интерфейс. Если перетаскивание было начато с TextViewE, оно не начинается. Введите описание изображения здесь

Solutions Collecting From Web of "TextView внутри ViewPager перехватывает события касания"

Меня это тоже беспокоило, но мне удалось найти ответ.

В основном, случай: если представление может прокручиваться по горизонтали, оно перехватывает событие горизонтального движения, и ViewPager больше не может его обработать.

Поскольку API-интерфейс 14 уровня TextViews имеет android: свойство scrollHorizontallysetHorizontallyScrolling (boolean) ), которое, если установлено значение true, заставляет TextView перехватывать события горизонтального прокрутки.

Вы можете установить его в false либо в формате XML, либо в коде справа, но не смотрите : android: свойство singleLine force android: scrollHorizontally для установки в true ! Очень сложно ! Но, к счастью, вы обычно можете безопасно заменить свойство одиночной строки на android: maxLines = "1" и необходимое значение эллипсиса .

Удачи!

Вы можете переопределить onTouchEvent () TextView:

 @Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_MOVE) { return false; } return super.onTouchEvent(event); }