美文网首页扩展程序编码Android开发探索
RecyclerView:PagerSnapHelper让你体验

RecyclerView:PagerSnapHelper让你体验

作者: yang2211132 | 来源:发表于2018-08-21 08:35 被阅读337次

前言

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

相关文章

网友评论

    本文标题:RecyclerView:PagerSnapHelper让你体验

    本文链接:https://www.haomeiwen.com/subject/pfqdiftx.html