[英]How to detect when RecyclerView is scrolled to most top position
I have RecyclerView above that i have an AppBarLayout whose height is larger than 255 px.我上面有 RecyclerView,我有一个 AppBarLayout,它的高度大于 255 像素。 When user scrolls RecyclerView, AppBarLayout has an fling issue.当用户滚动 RecyclerView 时,AppBarLayout 会出现问题。 To avoid that i decided to expand AppBarLayout manually.为了避免这种情况,我决定手动扩展 AppBarLayout。 My RecyclerView made of GridLayoutManager with span of 3. I used below code to listen RecyclerView top reach我的 RecyclerView 由 GridLayoutManager 制成,跨度为 3。我使用下面的代码来收听 RecyclerView topreach
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
int firstVisiblePosition = ((LinearLayoutManager)recyclerView.getLayoutManager()).findFirstCompletelyVisibleItemPosition();
if (firstVisiblePosition == 0) {
appBarLayout.setExpanded(true, true);
}
}
}
});
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
int firstVisibleItem = gridLayoutManager.findFirstCompletelyVisibleItemPosition();
if(firstVisibleItem == 0){
// your code
}
}
});
This answer will help you.这个答案会帮助你。 Yours truly敬上
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
totalItemCount = layoutManager.getItemCount();
visibleItemCount = layoutManager.getChildCount();
pastVisiblesItems = layoutManager.findFirstVisibleItemPosition();
if ((visibleItemCount + pastVisiblesItems) >= totalItemCount ) {
Log.d(TAG, "scroll down");
}
else{
Log.d(TAG, "scroll up");
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.