Android RecyView 滑动置指定位置
Posted 李盘全
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android RecyView 滑动置指定位置相关的知识,希望对你有一定的参考价值。
1,直接回到顶部
recyview.getLinearLayoutManager().scrollToPositionWithOffset(0, 0);
2,慢慢的回到顶部
private void goTop(int currentPoint) {
if (currentPoint >= 0) {
int step = 3;
if (currentPoint % 10 > 1)
step = 10;
if (currentPoint % 5 > 1)
step = 5;
if (currentPoint - step > 0) {
getView().getLinearLayoutManager().scrollToPositionWithOffset(currentPoint - step, 0);
} else {
getView().getLinearLayoutManager().scrollToPositionWithOffset(0, 0);
return;
}
Message msg = Message.obtain();
msg.obj = currentPoint - step;
msg.what = WHAT_DELAYED_GO_TOP;
goTopHandler.sendMessageDelayed(msg, 30);
}
}
private static int WHAT_DELAYED_GO_TOP = 212;
/**
* 解决内存泄漏问题
*/
private final static class GoTopHandler extends Handler {
private SoftReference<IndexForumContentPresenter> softReference;
private GoTopHandler(IndexForumContentPresenter indexFragmentPresenter) {
this.softReference = new SoftReference<>(indexFragmentPresenter);
}
@Override
public void handleMessage(Message msg) {
// 作废重复调用
if (this.softReference.get() == null)
return;
if (msg.what == WHAT_DELAYED_GO_TOP) { // 切换轮播
// 回调给界面进行切换界面操作
this.softReference.get().goTop((Integer) msg.obj);
}
}
}
2.1慢慢的回到顶部:调用
int firstPosition = recyview.getLinearLayoutManager().findFirstVisibleItemPosition();
goTop(firstPosition);
以上是关于Android RecyView 滑动置指定位置的主要内容,如果未能解决你的问题,请参考以下文章
Android-RecyclerView系列 滑动到指定位置