0

У меня есть RecyclerView, сначала его прокрутка вниз, теперь, когда мы прокручиваем вверх, он достигает наибольшей точки. Я хочу обнаружить это. Есть ли какой-нибудь способ? У меня AppBar, высота которого больше ширины устройства. поэтому он вызывает прокрутку. Я подумал, что, получив верхний доступный слушатель, вручную расширьте AppBar, чтобы избежать броска.Обнаружить вершину RecyclerView?

if (layoutManager.firstCompletelyVisibleItemPosition() == 0) { 
    //this is the top of the RecyclerView 
    } 

этот код я уже использовал, но моя проблема в том, что я не могу прокручивать вверх RecyclerView после ввода этого кода. Поскольку мой RecyclerView использует GridLayoutManager с тремя столбцами.

+0

Возможный дубликат [? Как знать RecyclerView/LinearLayoutManager прокручивается ли сверху или снизу] (http://stackoverflow.com/questions/27841740/how-to-know-whether-a-recyclerview-lingleayoutmanager-is-scrolled-to-top-or-b) –

+0

Я отредактировал мой вопрос –

ответ

4

Если у вас есть LinearLayoutManager набор на вашем RecyslerView вы можете использовать его, чтобы найти первый видимый предмет:

LinearLayoutManager layoutManager=new LinearLayoutManager(this); 
recyclerview.setLayoutManager(layoutManager); 

if (layoutManager.firstCompletelyVisibleItemPosition() == 0) { 
    //this is the top of the RecyclerView 
} 
+0

этот код я уже но моя проблема в том, что я не могу прокрутить RecyclerView после ввода этого кода. Поскольку мой RecyclerView использует GridLayoutManager с тремя столбцами. –

+4

Правильное имя метода - 'findFirstCompletelyVisibleItemPosition', я думаю, –

+0

« findFirstCompletelyVisibleItemPosition »не будет работать, если ваши предметы больше вашего экрана (может случиться легко на небольших устройствах) – Katharina