Подтвердить что ты не робот

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

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

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

ИЗМЕНИТЬ

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

4b9b3361

Ответ 1

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

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

Поскольку Уровень API <14 > имеет свойство android: scrollHorizontally setHorizontallyScrolling (boolean)), который, если установлен в true, заставляет TextView перехватывать события перемещения по горизонтали.

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

Удачи!

Ответ 2

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

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

    return super.onTouchEvent(event);
}