java - addOnScrollListener 不起作用(Android)

标签 java android xml

我正在我的应用程序上创建一个 recyclerview 分页,但突然 addOnScrollListener 不起作用。我怎样才能解决这个问题?感谢您的帮助。

这是我的代码

  private void initView(){
        linearLayoutManager = new LinearLayoutManager(getBaseActivity());
        recyclerView.setLayoutManager(linearLayoutManager);
        recyclerView.setHasFixedSize(true);
        myAdapter = new MyAdapter(list);
        myAdapter.setOnClickListener((data, position) -> {
            mydata = data;
        });
        recyclerView.setAdapter(myAdapter);
        recyclerView.addOnScrollListener(new EndlessRecyclerViewScrollListener(linearLayoutManager) {
            @Override
            public void onLoadMore(int page, int totalItemsCount, RecyclerView view) {
                isLoading = true;
                EndlessRecyclerViewScrollListener.setLoading(true);
                Map<String, Object> queryMap = new HashMap<>();
                queryMap.put("page",page);
                queryMap.put("item_count","20");
           myApiHelper.getDataUser(mytoken,id,queryMap);
                Log.d("log0","page "+page);
                Log.d("log0","totalItemsCount "+totalItemsCount);
                Log.d("log0","arrayList.size "+list.size());
                Log.d("log0","totalPages "+totalPages);
            }
        });
    }

最佳答案

大概应该是这样的:

@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {

    int pastVisibleItems = 0, visibleItemCount, totalItemCount;

    StaggeredGridLayoutManager mLayoutManager =
            (StaggeredGridLayoutManager) recyclerView.getLayoutManager();

    visibleItemCount = mLayoutManager.getChildCount();
    totalItemCount = mLayoutManager.getItemCount();
    int[] firstVisibleItems = null;
    firstVisibleItems = mLayoutManager.findFirstVisibleItemPositions(firstVisibleItems);
    if(firstVisibleItems != null && firstVisibleItems.length > 0) {
        pastVisibleItems = firstVisibleItems[0];
    }

    if (loading) {
        if ((visibleItemCount + pastVisibleItems) >= totalItemCount) {
            loading = false;
            Log.d(TAG, "LOAD NEXT ITEM");

            loadMoreItem();
        }
    }
}

关于java - addOnScrollListener 不起作用(Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55901303/

相关文章:

Java 进程/IO 执行挂起

java - Swagger 枚举值未显示在下拉列表中?

android - 如何监听自定义 URI

java - 为 Android 计算器创建点函数

java - 从 XML 节点中提取测量值

java - 解析带小数点的整数

java - 'around' 通知的内容可以从单独的函数中执行吗?

java - 如何将java Json数据获取类变成方法?

android - Google+ 无线安装不起作用

c# - 具有默认值的 XmlSerializer 和 List<T>