我在我的应用程序中实现了新的SwipeRefreshLayout
组件,它可以很好地与任何垂直视图一起使用,例如ListView
、GridView
和ScrollView
。
但是,与水平视图(如HorizontalScrollView
)一起使用时会表现得非常糟糕。当向左或向右滚动时,SwipeRefreshLayout
视图会缓存触摸事件,阻止HorizontalScrollView
接收事件并开始垂直滚动以执行刷新操作。
我尝试解决这个问题,就像之前解决带有ViewPager
的垂直ScrollView
的问题一样,使用requestDisallowInterceptTouchEvent
方法,但这并没有起作用。我还注意到,在原始的SwipeRefreshLayout
类中,这个方法被覆盖而没有返回super。Google的开发人员留下了一个注释 "//Nope.
" :)
由于SwipeRefreshLayout
组件相对较新,我找不到解决水平滚动问题的解决方案,同时仍允许刷动以刷新视图跟踪并处理垂直滚动,所以我想分享我的解决方案,希望它能为某人节省一两个小时。