findLastCompletelyVisibleItemPosition: возвращает позицию адаптера последнего полностью видимого представления. Эта позиция не включает изменения адаптера, отправленные после последнего прохода макета.
findLastVisibleItemPosition: возвращает позицию адаптера последнего видимого представления. Эта позиция не включает изменения адаптера, отправленные после последнего прохода макета.
У меня 16 предметов. Поэтому при прокрутке до конца (когда последний элемент полностью виден) оба метода дают результат как 16. Но когда я прокручиваю до конца, но последний элемент наполовину видим, findLastCompletelyVisibleItemPosition показывает 14, а findLastVisibleItemPosition показывает 15.
Может кто-нибудь объяснить мне, почему отображается 14? и какова точная разница между этими двумя функциями.
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
RecyclerView.LayoutManager linearLayoutManager = recyclerView.getLayoutManager();
if(linearLayoutManager != null && linearLayoutManager instanceof LinearLayoutManager) {
int position = ((LinearLayoutManager) linearLayoutManager).findLastCompletelyVisibleItemPosition();
int position1 = ((LinearLayoutManager) linearLayoutManager).findLastVisibleItemPosition();
Log.d(TAG, "position: " + position);
Log.d(TAG, "position1: " + position1);
}
}