RecyclerView通过manager.smoothScrollToPosition()来改变滑动速度

转载 2017年05月17日 14:48:02
1.主要通过重写
LinearLayoutManager 的smoothScrollToPosition方法
public class ScollLinearLayoutManager extends LinearLayoutManager {
  private float MILLISECONDS_PER_INCH = 1f;  //修改可以改变数据,越大速度越慢
  private Context contxt;

  public ScollLinearLayoutManager(Context context) {
    super(context);
    this.contxt = context;
  }

  @Override
  public void smoothScrollToPosition(RecyclerView recyclerView, RecyclerView.State state, int position) {
    LinearSmoothScroller linearSmoothScroller =
        new LinearSmoothScroller(recyclerView.getContext()) {
          @Override
          public PointF computeScrollVectorForPosition(int targetPosition) {
            return ScollLinearLayoutManager.this
                .computeScrollVectorForPosition(targetPosition);
          }

          //This returns the milliseconds it takes to
          //scroll one pixel.
          @Override
          protected float calculateSpeedPerPixel
          (DisplayMetrics displayMetrics) {
            return MILLISECONDS_PER_INCH / displayMetrics.density;
            //返回滑动一个pixel需要多少毫秒
          }

        };
    linearSmoothScroller.setTargetPosition(position);
    startSmoothScroll(linearSmoothScroller);
  }

  //可以用来设置速度
  public void setSpeedSlow(float x) {
    //自己在这里用density去乘,希望不同分辨率设备上滑动速度相同
    //0.3f是自己估摸的一个值,可以根据不同需求自己修改
    MILLISECONDS_PER_INCH = contxt.getResources().getDisplayMetrics().density * 0.3f+(x);
  }
  
}

关于RecyclerView滑动速度和抛掷速度的控制和改变

这是我发布的第一篇技术博客,本应该在上个月做项目的时候实时发布的,那时候的理解也最深刻。由于个人执行力不够,拖延到现在,万事开头难,开始了就要坚持下去。 这篇文章主要讲在Android的Recycl...
  • qq_28051795
  • qq_28051795
  • 2016年09月18日 13:34
  • 1418

recyclerview 实现卡片滑动效果

想recyclerview快速实现卡片滑动,需要一个重要帮助类,LinearSnapHelper类,这个类是Android24.2.0之后引入的帮助类,是SnapHelper抽象类的子类 具有让re...
  • change987654321
  • change987654321
  • 2016年11月22日 11:39
  • 1986

随着RecycleView的滑动实现标题栏透明度渐变:

让标题栏透明度随着recycleview的滑动而渐变
  • zsr0526
  • zsr0526
  • 2017年03月25日 20:43
  • 2170

RecyclerView调用smoothScrollToPosition() 控制滑动速度

调用RecyclerView的smoothScrollToPositon可以指定RecyclerView滑动到某个item,但这个滑动的速度很快,如果想要滑动速度可以控制,那么应该怎么办呢?...
  • a86261566
  • a86261566
  • 2016年03月16日 17:06
  • 20051

关于RecyclerView滑动速度和抛掷速度的控制和改变

这是我发布的第一篇技术博客,本应该在上个月做项目的时候实时发布的,那时候的理解也最深刻。由于个人执行力不够,拖延到现在,万事开头难,开始了就要坚持下去。 这篇文章主要讲在Android的Recycl...
  • qq_28051795
  • qq_28051795
  • 2016年09月18日 13:34
  • 1418

Android开发模板------ViewPager(三):实现无限循环、可嵌套RecyclerView、可控制滑动速度

一、布局很简单: 二、使用也比较简单,直接看代码:private ViewPag
  • dsc114
  • dsc114
  • 2017年06月23日 11:07
  • 399

Android开发模板------ViewPager(三):实现无限循环、可嵌套RecyclerView、可控制滑动速度

一、使用布局就不贴了,直接写业务逻辑:private ViewPager mPager; private LinearLayout mVPIndicate; private void ...
  • dsc114
  • dsc114
  • 2017年12月12日 09:25
  • 54

RecyclerView smoothScrollToPosition的滚动时间

当RecyclerView中的数据集很大时,通过smoothScrollToPosition去滚动到一个位置,如果这个位置和当前位置相差很远,比如说300项,你会发现整个过程很长,比如说我遇到的,滚动...
  • u012123268
  • u012123268
  • 2016年04月21日 18:37
  • 3215

RecyclerView实现滚动滑动以及点击改变控件颜色

项目中需要横向滚动效果,按照以前的思路,我会写一个ScrollView,里边加一个LinearLayout,在代码中动态加入控件,然后动态删除或者改变颜色,现在android有了新控件Recycler...
  • jifashihan
  • jifashihan
  • 2016年07月12日 14:48
  • 7300

Internet Download Manager提升下载速度软件破解版

  • 2013年12月29日 00:37
  • 8.69MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RecyclerView通过manager.smoothScrollToPosition()来改变滑动速度
举报原因:
原因补充:

(最多只允许输入30个字)