У меня есть проект, использующий ViewPager, который работает правильно: я могу перелистывать страницы от просмотра к просмотру, щелкая влево и вправо.
На одной странице ViewPager у меня есть пользовательское представление, и я пытаюсьдобавьте под ним другое представление (LinearLayout), чувствительное к прикосновению, которое не будет «пейджировать» ViewPager.Например:
<LinearLayout >
<myView />
<LinearLayout> // The touch sensitive region
</LinearLayout>
</LinearLayout>
После того, как мое представление было раздуто и добавлено в ViewPager, я вызываю setOnTouchListener (), чтобы присоединить слушателя к внутреннему LinearLayout.Слушатель возвращает «true».
К сожалению, когда я перемещаюсь горизонтально в этом представлении, я перехожу на другую страницу.События, которые я получаю: ACTION_DOWN, ACTION_MOVE (n раз) и, наконец, ACTION_CANCEL.Хотя я остался в поле зрения.
Кажется, что событие поднялось по иерархии представления и обработано ViewPager.
Есть ли логическое объяснение этому поведению?