基本上标题是什么。我正在尝试实现自己的fastscroller。
recyclerView.scrollToPosition(position);
System.out.println(position + " :: " +
linearLayoutManager.findFirstVisibleItemPosition() );
现在问题是这两个值与有时不匹配,我不知道为什么。这意味着,recyclerview不会滚动到所需位置,而且linearLayoutManager对于当前位置是正确的。
输出很奇怪,第一个可见位置要么匹配所需的滚动位置,要么第一个可见位置正好低于所需的7个位置。 (除非Recyclerview需要一些时间滚动到该位置。)
输出:
I/System.out: 49 :: 42
I/System.out: 82 :: 42
I/System.out: 82 :: 75
...
I/System.out: 386 :: 379
I/System.out: 431 :: 379
I/System.out: 431 :: 424
I/System.out: 431 :: 424
那么如何精确滚动到所需的位置呢?
编辑:我意识到我不需要滚动recyclerview,但是LinearLayoutManager ...
linearLayoutManager.scrollToPositionWithOffset(position, 0);
答案 0 :(得分:1)
afaik,Recyclerview滚动到所需位置显示在屏幕底部。
llm.findFirstVisiblePosition()
显示屏幕上的第一项==屏幕顶部的项目。