[英]RecyclerView addOnScrollListener with FirebaseRecyclerAdapter
我正在編寫一個程序,我正在使用 FirebaseRecyclerAdapter 從 Firebase 數據庫中獲取數據
我正在嘗試實現在每個滾動條上添加 20 條記錄並實現相同的功能,我正在使用:
mDatabaseReference = FirebaseDatabase.getInstance().getReference().child("Users");
queryUsersData = mDatabaseReference.orderByChild("timestamp").limitToFirst(20);
現在,問題是我得到了前 20 條記錄,但是在滾動時我沒有得到接下來的 20 條記錄,因為在每次滾動時,我都想得到接下來的 20 條記錄
開始()
FirebaseRecyclerAdapter<Users, UsersViewHolder> adapter = new FirebaseRecyclerAdapter<Users, UsersViewHolder>(
Users.class,
R.layout.user_layout,
UsersViewHolder.class,
queryUsersData
) {
@Override
protected void populateViewHolder(UsersViewHolder usersViewHolder, Users users, int position) {
final String userID = getRef(position).getKey();
....
}
};
usersList.setAdapter(adapter);
}
RecyclerView addOnScrollListener
Boolean isScrolling = false;
int currentItems, totalItems, scrollOutItems;
..........
usersList.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if(newState == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) {
isScrolling = true;
}
}
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
currentItems = linearLayoutManager.getChildCount();
totalItems = linearLayoutManager.getItemCount();
scrollOutItems = linearLayoutManager.findFirstVisibleItemPosition();
if(isScrolling && (currentItems + scrollOutItems == totalItems)) {
isScrolling = false;
}
}
});
現在下一步該怎么做? 實現我的目標!
分頁將實現您想要的干凈可靠,我最近將它與 Kotlin 一起使用,但這里有一個 java 實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.