计算滑动距离
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
Log.d(TAG,getScollYDistance()+"");
}
});
public int getScollYDistance() {
LinearLayoutManager layoutManager = (LinearLayoutManager) rvHomeHouse.getLayoutManager();
int position = layoutManager.findFirstVisibleItemPosition();
View firstVisiableChildView = layoutManager.findViewByPosition(position);
int itemHeight = firstVisiableChildView.getHeight();
return (position) * itemHeight - firstVisiableChildView.getTop();
}
监听滑动状态
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
switch (newState){
case RecyclerView.SCROLL_STATE_DRAGGING:
Log.d("wangrui","正在拖拽");
break;
case RecyclerView.SCROLL_STATE_IDLE:
Log.d("wangrui","滑动停止");
break;
case RecyclerView.SCROLL_STATE_SETTLING:
Log.d("wangrui","惯性滑动中");
break;
}
}
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
/*每次滑动必定调用这里*/
}
该代码示例展示了如何在Android中使用RecyclerView的addOnScrollListener来监听滚动事件。onScrolled方法用于计算滑动距离,而onScrollStateChanged则区分了拖拽、滑动停止和惯性滑动三种状态。
566

被折叠的 条评论
为什么被折叠?



