내 앱에 가로로 스크롤하는 리사이클 뷰가 있습니다. 목록을 스크롤하고 마지막 위치에 도달했을 때 다른 이벤트를 트리거하려고합니다.Android에서 RecyclerView의 마지막 위치로 스크롤 할 때 알림
1
A
답변
1
단지 recyclerview에 addOnScrollListener()를 구현하십시오. 그런 다음 스크롤 리스너 내부에서 아래 코드를 구현합니다.
RecyclerView.OnScrollListener mScrollListener = new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
if (mIsLoading)
return;
int visibleItemCount = mLayoutManager.getChildCount();
int totalItemCount = mLayoutManager.getItemCount();
int pastVisibleItems = mLayoutManager.findFirstVisibleItemPosition();
if (pastVisibleItems + visibleItemCount >= totalItemCount) {
//End of list
}
}
};
0
private RecyclerView.OnScrollListener nRecyclerViewOnScrollListener = new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
int visibleItemCount = notificationLayoutManager.getChildCount();
int totalItemCount = notificationLayoutManager.getItemCount();
int firstVisibleItemPosition = notificationLayoutManager.findFirstVisibleItemPosition();
if ((visibleItemCount + firstVisibleItemPosition) >= totalItemCount) {
nLoadMoreItems();
}
}
};
private void nLoadMoreItems() {
if (defaultCurrentPage < defaultpageCount)
layout_load_more_loadingNotification.setVisibility(View.VISIBLE);
int pageCount = (defaultCurrentPage + 1);
//fetch second page data
}
모든 답을보고 난 후에 그것을
+0
고마워, @Safal에서 업데이트 된 답변을 확인할 수 있습니다. –
0
을 시도, 나는
private RecyclerView.OnScrollListener nRecyclerViewOnScrollListener = new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (newState == 2) {
try {
if (lastVisibleItemPosition + 1 == totalItemCount) {
//Write you code here
}
} catch (Exception e) {
e.printStackTrace();
Log.i(TAG, e.getMessage());
}
}
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
totalItemCount = mLayoutManager.getItemCount();
lastVisibleItemPosition = ((LinearLayoutManager) recyclerView.getLayoutManager()).findLastCompletelyVisibleItemPosition();
}
};
가
당신이 무엇을보기
recyclerView.addOnScrollListener(nRecyclerViewOnScrollListener);
을 재활용하는 청취자를 추가,이 작업을 수행하여 내 문제를 해결 지금까지 해봤습니까? 코드를 게시 할 수 있습니까? –