android - RecyclerView OnScrollListener() 问题

标签 android android-recyclerview android-appcompat onscrolllistener

我在 json 中有大约 32 条记录,我正在使用 RecyclerView 来显示它们并且我已经实现了 OnScrollListener(...)

问题

我启动了一个 Activity ,我获取了所有 32 条记录,现在当我滚动时,为什么我再次一次又一次地获得相同的 32 条记录,每当我滚动时,这是我对 OnScrollListener() 的实现

public void initializeOnScrollForRecyclerView() {
        mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {

                int visibleItemCount = recyclerView.getLayoutManager().getChildCount();
                int totalItemCount = recyclerView.getLayoutManager().getItemCount();
                int pastVisiblesItems = ((LinearLayoutManager) recyclerView.getLayoutManager()).findFirstVisibleItemPosition();

                if (!isLoading) {
                    if ((visibleItemCount + pastVisiblesItems) >= totalItemCount) {
                        isLoading = true;
                        mPostPresenter.loadPosts(false);
                    }
                }
            }
        });
    }

最佳答案

实现似乎是正确的,但在一个条件下它失败了,当 dy > 0 时像这样尝试(也把它放在 Activity 的 OnCreate 中):

    private boolean loading = true;

 recyclerView.addOnScrollListener(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)
        {

            if (loading) {
                if (dy > 0) //check for scroll down
                {
                    visibleItemCount = layoutManager.getChildCount();
                    totalItemCount = layoutManager.getItemCount();
                    pastVisiblesItems = layoutManager.findFirstVisibleItemPosition();

                    if ((visibleItemCount + pastVisiblesItems) >= totalItemCount) {
                        loading = false;

                        Log.v("...", " Reached Last Item");
                        loadMoreVideos(searchVideos);
                    }

                }
            }
        }
    });

关于android - RecyclerView OnScrollListener() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35954410/

相关文章:

android - 引导模式 : Android browser

android - 声明 Android 终端和嵌入式 Linux 卡之间的 USB 接口(interface)

android - 从 appcompat-v7 android 中删除图像和 Assets

android - 将 appcompat v7-22 添加到 Android studio 项目

android - React Native - 无法使用 PermissionsAndroid 请求位置权限

android - 为android中的按钮设置透明度

java - 阅读Firebase DB后如何更改RecyclerView中的itemView?

android - 尝试在 Activity 中打开时 Recycler View 崩溃

android - RecyclerView 内部的 View 返回 null

android - 添加媒体路由器转换按钮时出错