当对象在滚动时离开屏幕时,如何从recyclerview获取对象?例如,我有note with id 11
,当它离开屏幕时,我如何获得这个笔记id?
一种方法:
Boolean upScrolling;
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
LinearLayoutManager mgr = (LinearLayoutManager) recyclerView.getLayoutManager();
int topPosition = mgr.findFirstVisibleItemPosition();
/// your code
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (dy < 0) {
upScrolling = true;
} else if (dy > 0) {
upScrolling = false;
}
}
});
向上滚动后,在侦听器中,您将获得第一个可见项目。在您的代码的位置,您编写代码以检查第一个可见项目是否是您想要的项目下方的项目。如果是这种情况,那么你就会得到它从屏幕上消失的时间。已编辑以检查它是向上滚动还是向下滚动。