Я не пытался заставить его работать.Но вот мое предложение:
1.Вы должны переопределить ваш LinearLayoutManager
:
linearLayoutManager = new LinearLayoutManager(context) {
@Override
public boolean canScrollVertically() {
return isScrollable(); // your custom method
}
};
2.прослушайте событие прокрутки, чтобы определить событие прокрутки вверх / вниз:
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (dy > 0) {
// Scrolling up
} else {
// Scrolling down
}
}
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (newState == AbsListView.OnScrollListener.SCROLL_STATE_FLING) {
// Do something
} else if (newState == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) {
// Do something
} else {
// Do something
}
}
});
3.Использование linearLayoutManager.findFirstVisibleItemPosition()
для проверки, является ли это пороговое положение, и прокрутите вниз в isScrollable()
, чтобы включить / отключить прокрутку.