Как обновить данные, отображаемые в RecyclerView
(вызов notifyDataSetChanged
на его адаптере), и убедиться, что позиция прокрутки reset точно там, где она была?
В случае хорошего ol 'ListView
все, что требуется, - это получение getChildAt(0)
, проверка его getTop()
и вызов setSelectionFromTop
с теми же точными данными впоследствии.
Это не представляется возможным в случае RecyclerView
.
Я предполагаю, что я должен использовать его LayoutManager
, который действительно предоставляет scrollToPositionWithOffset(int position, int offset)
, но какой правильный способ получить позицию и смещение?
layoutManager.findFirstVisibleItemPosition()
и layoutManager.getChildAt(0).getTop()
?
Или есть более элегантный способ получить работу?