I have a ViewHolder that contains a RecyclerView. I need to synchronize the scrolling of these nested RecyclerView(s). I have managed to synchronize manual scrolling using an OnScrollListener, but I am having trouble with programmatic scrolling. I will start by mentioning that the last item in many of the nested RecyclerView(s) will often be partially offscreen, and it may even be too large to be completely visible all at once. This is by design. When using SmoothScrollToPosition, it does not always seem to work. There are also times when all of one of the RecyclerView's items are scrolled offscreen after synchronizing with the others, therefore making all items return null. How do I scroll to items that are scrolled offscreen or have been recycled, and what is the best way to synchronize the scroll positions when programmatically scrolling to items that do not yet exist?