您的位置:首页 > 移动开发 > Android开发

android SwipeRefreshLayout嵌套ViewPager 滑动冲突问题

2017-01-11 11:20 155 查看
android SwipeRefreshLayout嵌套ViewPager滑动冲突问题

背景:市面上,越来越多的app都在使用SwipeRefreshLayout刷新控件,比如手机百度啊,知乎什么的,咱们也要跟上潮流,不能掉队,最近项目就使用到了SwipeRefreshLayout刷新控件,但是遇到了一些小问题。

问题1:项目中页面布局由外到内,由上到下大致是:SwipeRefreshLayout(ViewPager广告+原生+WebView)组合而成的一个大页面。但是当左右滑动广告时,如果稍稍纵向带点滑动距离,就会触发SwipeRefreshLayout的滑动效果,而且滑动起来特别不灵敏。
分析:当水平滑动banner时,SwipeRefreshLayout也会收到滑动监听,对滑动手势做出反馈,当滑动手势不是完全水平方向时,SwipeRefreshLayout认为滑动手势是垂直方向的,因而也会触发refresh效果。
解决方案:当ViewPager banner在翻页滑动时,监听PageChange事件,当ViewPager 处于滑动忙碌状态时,禁用掉SwipeRefreshLayout,具体如下:
ViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

}

@Override
public void onPageSelected(int position) {

}

@Override
public void onPageScrollStateChanged(int state) {
SwipyRefreshLayout.setEnabled(state == ViewPager.SCROLL_STATE_IDLE);
}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息