ViewPager2 设置“overScrollMode”属性无效果 ,去掉滑动到边界的阴影

通常对于滑动类的View 设置 OverScrollMode=“never”,即可处理掉滑动到边界有阴影的问题,但是针对ViewPage2滑动到边界有阴影的问题,设置OverScrollMode=“never”,却无效。

​ 查看源码得知,ViewPage2被关键字final 修饰,导致ViewPage2 无法被继承。其内部就是基于RecyclerView来完成。而RecyclerView被定义为Protect类型,外部无法访问,导致RecyclerView 的overScrollMode 设置无效。

阴影产生的原因:RecyclerView中根据setWillNotDraw中的类型值来判断当前是否显示阴影,而setWillNotDraw中的值是根据OverScrollMode 的值来判断接收的值是否为true,如果等于true 则不显示,如果等于false 则显示。

通过深入探索发现ViewPager2获取getChildAt(0)到的子View 是RecyclerView。所以通过以下代码来完成

         val view: View = mBinder.reservlist.getChildAt(0)
        if (view is RecyclerView) {
            view.overScrollMode = View.OVER_SCROLL_NEVER
        }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容