I'm looking for a way to scroll a RecyclerView
to show the selected item on top.
In a ListView
I was able to do that by using scrollTo(x,y)
and getting the top of the element that need to be centered.
Something like:
@Override
public void onItemClick(View v, int pos){
mylistView.scrollTo(0, v.getTop());
}
The problem is that the RecyclerView
returns an error when using it's scrollTo
method saying
RecyclerView does not support scrolling to an absolute position
How can I scroll a RecyclerView
to put the selected item at the top of the view?
If you are using the LinearLayoutManager
or Staggered GridLayoutManager
, they each have a scrollToPositionWithOffset method that takes both the position and also the offset of the start of the item from the start of the RecyclerView
, which seems like it would accomplish what you need (setting the offset to 0 should align with the top).
For instance:
//Scroll item 2 to 20 pixels from the top
linearLayoutManager.scrollToPositionWithOffset(2, 20);