2016-12-10 3 views
0

В принципе, я хочу, чтобы мой recyclerview автоматически прокручивался до позиции, где элемент не показан наполовину. Как и в googleplay.Recycler View on Scroll Stop

Я написал код

public void scrollToVisible(){ 
    int firstVisibleItemPosition = ((LinearLayoutManager) recyclerView.getLayoutManager()).findFirstVisibleItemPosition(); 
    View view = recyclerView.getLayoutManager().getChildAt(0); 
    if (firstVisibleItemPosition > 0 && view != null) { 
     int offsetTop = view.getTop(); 
     if (firstVisibleItemPosition - 1 >= 0 && adapter.getItemCount() > 0) { 
      ((LinearLayoutManager) recyclerView.getLayoutManager()).scrollToPositionWithOffset(firstVisibleItemPosition - 1, offsetTop); 
     } 
    } 
} 

Проблема приходит следующий. Я не знаю, где поставить этот код. У меня есть смутная идея, чтобы положить это, когда recyclerview остановится при прокрутке, но я искал довольно долгое время, и я не могу найти такой метод. когда я положил его на OnScroll некоторые неожиданное поведение выходит

ответ

1

Вы можете создать CustomRecyclerView простирающуюся RecyclerView

public class CustomRecyclerView extends RecyclerView { 
@Override 
public void onScrollStateChanged(int state) { 
    super.onScrollStateChanged(state); 

    // check if scrolling has stopped 
    if (state == SCROLL_STATE_IDLE) { 
     LinearLayoutManager linearLayoutManager = (LinearLayoutManager) getLayoutManager(); 
     // use code here 
    } 
} 
+0

это проявляется, когда я использую customrecyclerview android.view.InflateException: Binary XML файл line # 8: Ошибка раздувания класса gaming.kg.passingvehiclecounter.CustomRecyclerView –

+0

см. это для полного примера: http://stackoverflow.com/a/26445064/5425930 –

+0

ОК, я наконец сделал работу благодарностью. только проблема теперь - плавное прокручивание, но это другой вопрос, так плохо отмечающий ваш ответ как правильный –