【问题标题】:RecyclerView addOnScrollListener with FirebaseRecyclerAdapterRecyclerView addOnScrollListener 与 FirebaseRecyclerAdapter
【发布时间】:2020-06-28 03:35:01
【问题描述】:

我正在编写一个程序,我正在使用 FirebaseRecyclerAdapter 从 Firebase 数据库中获取数据

我正在尝试实现一个功能,在每个滚动条上添加 20 条记录并实现相同,我正在使用:

mDatabaseReference = FirebaseDatabase.getInstance().getReference().child("Users");
queryUsersData = mDatabaseReference.orderByChild("timestamp").limitToFirst(20); 

现在,问题是我获得了前 20 条记录,但在滚动时我没有获得接下来的 20 条记录,因为每次滚动时,我都想获得接下来的 20 条记录

onStart()

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;
                }

            }
        });

现在下一步该做什么?实现我的目标!

【问题讨论】:

标签: android firebase firebase-realtime-database android-recyclerview


【解决方案1】:

分页会干净可靠地实现你想要的,我最近在 Kotlin 中使用过它,但是这里有一个 java 实现。

Pagination With Java + Firebase Real-Time Database

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-07
    • 2018-09-07
    • 2018-07-18
    • 1970-01-01
    相关资源
    最近更新 更多