一行代码解决:
RecyclerViewScrollHelper.scrollToPosition(recyclerView,position);
RecyclerViewScrollHelper源码:
public class RecyclerViewScrollHelper {
public static void scrollToPosition(RecyclerView recyclerView, int position){
RecyclerView.LayoutManager manager1 = recyclerView.getLayoutManager();
if (manager1 instanceof LinearLayoutManager) {
LinearLayoutManager manager = (LinearLayoutManager) manager1;
final TopSmoothScroller mScroller = new TopSmoothScroller(recyclerView.getContext());
mScroller.setTargetPosition(position);
manager.startSmoothScroll(mScroller);
public static class TopSmoothScroller extends LinearSmoothScroller {
TopSmoothScroller(Context context) {
super(context);
@Override
protected int getHorizontalSnapPreference() {
return SNAP_TO_START;
@Override
protected int getVerticalSnapPreference() {
return SNAP_TO_START;
背景在项目中,想使
RecyclerView
慢慢的平缓滑动指定位置,于是使用:
RecyclerView
.
smo
oth
Scroll
ToPosition(int);发现效果并不理想,滑动过程很突兀,很快就滑动到了指定位置,并没有像函数名那样
smo
oth
(流畅的,
平滑
的),也就是说
smo
oth
Scroll
ToPosition没有滑动效果,黑人问号???探索历程既然函数名是流畅平缓的滑动到指定位置,为什么并不
RecyclerView
是Android中非常受欢迎的控件,
RecyclerView
是官方在Android5.0之后新添加的控件,推出用来替代传统的ListView和GridView列表控件,所以如果你还在使用ListView的话可以替换为
RecyclerView
了。对于
RecyclerView
的使用根据实际项目进行说明,一些功能可能是你现在正在做的,对你有帮助也说不定。
1 需要新建一个LayoutManager,然后重写
Smo
oth
Scroll
ToPosition,如下图新建Fast
Scroll
LinearLayoutManager,继承LinearLayoutManager
public class Fast
Scroll
LinearLayoutManager extends LinearLayoutManager {
private float MI...
问题描述:最近遇到了一个点击TabLayout定位到
RecyclerView
对应item并
置顶
的需求。经查阅资料和自己看源码,找到了更好的解决方法,特在此记录以给遇到相似场景的同学们以参考。
RecyclerView
滚动
到指定位置并
置顶
RecyclerView
本身提供了几个定位的方法,除了手动滑动的
scroll
To,
smo
ot
Scroll
To和
scroll
By,
smo
oth
Scroll
By方...
最近在开发的时候,遇到了需要通过代码使得
RecyclerView
能够滑到指定item顶部位置的需求,在查看源码之后,发现
RecyclerView
已经提供了实现滑动到指定位置的方法,下面是可实现方法:
//
平滑
滚动
recyclerView
.
smo
oth
Scroll
ToPosition(position);
//非
平滑
滚动
recyclerView
.
scroll
ToPosition(position...
项目中需要一个Item可以自动循环
滚动
,之前写了一个左右
滚动
的,后来需求改了,要求上下循环
滚动
.整体思路:给
RecyclerView
设置一个最大数,填充数据时对位置取余,然后用Handler发送,调用rv.
smo
oth
Scroll
ToPosition(mAnimPosi); 方法,并设置自定义的管理器来控制速度Adapter的编写public class IndexLoopAdapter exte...
在实际项目里,RecycleView可以说是我们最常用到的组件,作为绑定并展示LIST数据的组件,经常需要实现
平滑
滚动
到列表里的某个目标ITEM,并且将其
置顶
在屏幕最上方,而且在特殊情形下,我们需要控制滑动速度,来控制
滚动
的时长。
然后很自然的去自定义
RecyclerView
。
最后发现在拖动
RecyclerView
时,需要拖动一段距离后才能显示我的自定义布局,感觉半天拖动不出来底部布局,很卡点样子。而这个起始的拖动距离差一直是25,而我打印了系统最小
滚动
距离ViewConfigu...
RecyclerView
.
smo
oth
Scroll
ToPosition(int);发现效果并不理想,滑动过程很突兀,很快就滑动到了指定位置,并没有像函数名那样
smo
oth
,本文将分享如何使得
RecyclerView
平滑
流畅的滑动到指定位置。
其实Android
RecyclerView
组件已经自带了移动方法:
RecyclerView
.
scroll
ToPosition(position) //没有
动画
效果
但是这个方法没有
动画
效果,很生硬,直接就滑动过去了,下面来看一个有滑动
动画
效果的:
val
smo
oth
Scroll
er= object : androidx.
recyclerview
.widget.Linear
Smo
oth
Scro...