基本的にはタイトルのことです。自分のファストスクローラーを実装しようとしています。Recyclerview scrollToPosition()がfindFirstVisibleItemPosition()と一致しません
recyclerView.scrollToPosition(position);
System.out.println(position + " :: " +
linearLayoutManager.findFirstVisibleItemPosition());
今の問題は、これら2つの値が時々をと一致しないと、私はなぜ知らないということです。これは、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をスクロールする必要がありますが、recyclerviewの巻物私の知る限りLinearLayoutManager ...
linearLayoutManager.scrollToPositionWithOffset(position, 0);
参照 'LinearLayoutManager#scrollToPosition(int position) 'ドキュメント – pskink