阳光沙滩
让学习编程变得简单
ViewPager里面的Fragment有滑动冲突,地图滑动和RecyclerView冲突,重写ViewPager,很不错哦。
发表于 2019-12-11    阅读次数 238

问题:ViewPager滑动事件冲突

上图

图片描述

上面地图左右滑动和下面RecyclerView列表左右滑动冲突,目的,避免地图上面拖动会切换界面。

第一,重写ViewPager

新建ViewPagerCompat继承ViewPager,其中的com.amap.api.maps.MapView就是在layout中用到的地图。

public class ViewPagerCompat extends ViewPager {
    public ViewPagerCompat(Context context) {
        super(context);
    }
    public ViewPagerCompat(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    @Override
    protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
        if(v.getClass().getName().equals("com.amap.api.maps.MapView")) {
            return true;
        }
        return super.canScroll(v, checkV, dx, x, y);

    }
}

第二,用ViewPagerCompat 替换之前的ViewPager

在activity页面中调整

private ViewPagerCompat mContentPager;

layout文件中调整

<com.xxxxx.bbbbb.utils.ViewPagerCompat
.....
.....
/>

第三,试试看看有没有效果

注意com.amap.api.maps.MapView,这个是替换重点,不同地图不同。

看到这里了就点个

赞 呗!!!