Я реализовал новый компонент SwipeRefreshLayout в своем приложении и хорошо работает с любыми вертикальными представлениями, такими как ListView, GridView и ScrollView.
Это ведет себя очень плохо с горизонтальными представлениями, например HorizontalScrollView.
При прокрутке вправо или влево представление SwipeRefreshLayout кэширует касание, предотвращает его получение HorizontalScrollView и начинает прокрутку по вертикали для выполнения обновления.
Я попытался решить эту проблему, поскольку ранее я решил проблемы с вертикальной ScrollView с ViewPager внутри, используя requestDisallowInterceptTouchEvent, но это не сработало. Я также заметил, что этот метод переопределен в исходном классе SwipeRefreshLayout, не возвращая супер. Вместо этого разработчик Google оставил комментарий "//Nope.":)
Поскольку компонент SwipeRefreshLayout является относительно новым, я не смог найти решение, которое устраняет проблему горизонтального прокрутки, в то же время позволяя прокручивать изображение, чтобы отслеживать и обрабатывать вертикальную прокрутку, поэтому я решил поделиться своим решением с надеждой он пощадит кого-то час или два.