RecyclerView:PagerSnapHelper让你体验视频上下无缝滑动播放

前言

RecyclerView在24.2.0版本中新增了SnapHelper这个辅助类,用于辅助RecyclerView在滚动结束时将Item对齐到某个位置。例如列表横向,纵向滑动时,很多时候不会让列表滑到任意位置,而是会有一定的规则限制,这时候就可以通过SnapHelper来定义对齐规则了。

SnapHelper是一个抽象类,官方提供了一个LinearSnapHelper的子类,可以让RecyclerView滚动停止时相应的Item停留中间位置。25.1.0版本中官方又提供了一个PagerSnapHelper的子类,可以使RecyclerView像ViewPager一样的效果,一次只能滑一页,而且居中显示。


ListView/RecyclerView滚动事件监听

1.onScrollStateChanged 用于监听ListView/RecyclerView滑动状态的变化

2.onScroll 用于监听ListView/RecyclerView屏幕滚动

3.scrollVerticallyBy用于监听ListView/RecyclerView屏幕滚动方向

   onScrollStateChanged

 /**
     * OnScrollListener.SCROLL_STATE_FLING; //屏幕处于甩动状态
      OnScrollListener.SCROLL_STATE_IDLE; //停止滑动状态
     OnScrollListener.SCROLL_STATE_TOUCH_SCROLL;// 手指接触状态
     * @param state
     */
    @Override
    public void onScrollStateChanged(int state) {
        switch (state) {
            case RecyclerView.SCROLL_STATE_IDLE:



                break;
        }
        super.onScrollStateChanged(state);
    }

 scrollVerticallyBy:y轴滚动

 @Override
    public int scrollVerticallyBy(int dy, RecyclerView.Recycler recycler, RecyclerView.State state) {
        this.mDrift = dy;
        return super.scrollVerticallyBy(dy, recycler, state);
    }
mDrift判断移动方向:mDrift>0向上移动,mDrift<0向下移动。

OnChildAttachStateChangeListener

实现这个接口重写onChildViewAttachedToWindow方法,在ListView/RecyclerView中,当Item添加进来了 调用这个方法。

onChildViewDetachedFromWindow Item退出调用这个方法。

直接看效果:

x向上滑动

up

向下滑动

down

代码:https://github.com/yangxiansheng123/FFmpegPlayVideo

可参考:

1.https://www.jianshu.com/p/e54db232df62

2.https://blog.csdn.net/xx326664162/article/details/49617013

3..GSYVideoPlayer : https://github.com/CarGuo/GSYVideoPlayer

猜你喜欢

转载自blog.csdn.net/u014133119/article/details/81559610