У меня есть два RecyclerView
в линейном горизонтальном расположении внутри NestedScrollView
, один для показа индексов, а другой для отображения данных (я знаю, что мог бы сделать это за один RecyclerView
, но я хочувключите перетаскивание только на данные RecyclerView
, а не на другие, поэтому мне пришлось использовать два RecyclerView
). Теперь, когда я хочу, чтобы они прокручивались вместе, я поместил их в линейный горизонтальный макет внутри NestedScrollView
. Теперь мне нужно получить позиции первого и последнего видимых предметов в RecyclerView
. Как я могу получить это?
Я пытался заменить NestedScrollView
на ScrollView
, но затем два RecyclerView
прокручивали по отдельности, что мне не нужно. Я также попытался добавить addOnScrollListener
к данным recyclerView
. Но он возвращает только 0 и размер List
.
itemRecyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
super.onScrolled(recyclerView, dx, dy)
log("onScrolled")
val layoutManager = itemRecyclerView.layoutManager
if (layoutManager is LinearLayoutManager) {
log("First visible Item: " + layoutManager.findFirstVisibleItemPosition())
log("First complete visible Item: " + layoutManager.findFirstCompletelyVisibleItemPosition())
log("Last visible Item: " + layoutManager.findLastVisibleItemPosition())
log("Last complete visible Item: " + layoutManager.findLastCompletelyVisibleItemPosition())
}
}