Чтобы реализовать шаблон бесконечной прокрутки в RecyclerView
, я хочу создать класс, например
public class EndlessScrollAdapter<VH extends ViewHolder>
extends RecyclerView.Adapter<VH> implements RecyclerView.OnScrollListener {
}
Поскольку EndlessScrollAdapter
должен отвечать за обработку данных и прокрутку, это наиболее удобный способ его реализации.
Но, поскольку в recyclerview-v7-21.0.3
, OnScrollListener
объявлен как этот
/**
* An OnScrollListener can be set on a RecyclerView to receive messages
* when a scrolling event has occurred on that RecyclerView.
*
* @see RecyclerView#setOnScrollListener(OnScrollListener)
*/
abstract static public class OnScrollListener {
/**
* Callback method to be invoked when RecyclerView scroll state changes.
*
* @param recyclerView The RecyclerView whose scroll state has changed.
* @param newState The updated scroll state. One of {@link #SCROLL_STATE_IDLE},
* {@link #SCROLL_STATE_DRAGGING} or {@link #SCROLL_STATE_SETTLING}.
*/
public void onScrollStateChanged(RecyclerView recyclerView, int newState){}
/**
* Callback method to be invoked when the RecyclerView has been scrolled. This will be
* called after the scroll has completed.
*
* @param recyclerView The RecyclerView which scrolled.
* @param dx The amount of horizontal scroll.
* @param dy The amount of vertical scroll.
*/
public void onScrolled(RecyclerView recyclerView, int dx, int dy){}
}
Я не могу сделать EndlessScrollAdapter
реализовать OnScrollListener
.
Итак, как гласит название, есть ли веская причина для OnScrollListener
быть классом, а не интерфейсом? Потому что я думаю, что это должен быть интерфейс.