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;// 手指接触状态

*@paramstate

    */

@Override

publicvoidonScrollStateChanged(intstate){

switch(state) {

caseRecyclerView.SCROLL_STATE_IDLE:

break;

        }

super.onScrollStateChanged(state);

    }

 scrollVerticallyBy:y轴滚动

@Override

publicintscrollVerticallyBy(intdy, RecyclerView.Recycler recycler, RecyclerView.State state){

this.mDrift = dy;

returnsuper.scrollVerticallyBy(dy, recycler, state);

    }

mDrift判断移动方向:mDrift>0向上移动,mDrift<0向下移动。

OnChildAttachStateChangeListener


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

onChildViewDetachedFromWindow Item退出调用这个方法。



直接看效果:


x向上滑动



向下滑动




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



个人一般喜欢在博客发表文章,大家喜欢的话,欢迎关注我的博客:https://blog.csdn.net/u014133119

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我幸福于, 自己襁褓之时就坐过火车, 去了遥远却豪迈的东北外婆家; 12岁时就一个人坐长途大巴, 去无锡找在打工的...
    佴茈玖玖阅读 1,469评论 0 0
  • 写下一段话 又删了 怕你说我无病呻吟 怕你说我矫揉做作 其实都没有 我只是与生活握手言欢 我只是与梦想谈笑流年 就...
    静待花开芬芳来阅读 942评论 0 0
  • 荼蘼共六集,每集大概一个半小时,被我两天挤了点时间看完了。 如薇和汤有颜本来已经说好去上海发展,好不...
    时间的note阅读 4,262评论 0 2