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