代码之家  ›  专栏  ›  技术社区  ›  jvargas

如何在回收器视图中显示列表中的所有数据

  •  -1
  • jvargas  · 技术社区  · 5 年前

    我有一个搜索栏,当我输入丢失项目的ID时,它会显示它们。我找不到问题出在哪里。任何关于寻找什么或我可以做的改变的建议,都是非常欢迎的。请随意索取您认为需要的任何代码。

    我就是这么叫适配器的

    public void buildCollectionSalesAdapter(){
            final String filter = edtFindSale.getText().toString().trim();
            final SaleHeader saleHeaderModel = new SaleHeader();
            List<SaleHeader> saleHeaderList1 = new SaleHeader().getSaleHeadersAll();
            int limit = saleHeaderList1.size();
            saleHeaderList = saleHeaderModel.getSaleHeaderCollectPagination(limit, 0, filter,
                    config.showVerified, config.allCustomers);
            final SalesAdapter salesAdapter = new SalesAdapter(saleHeaderList, null, context,
                    CollectionFragment.this, null, getActivity());
    
            rcvCollection.setAdapter(salesAdapter);
            registerForContextMenu(rcvCollection);
    
            rcvCollection.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(dy > 0) //check for scroll down
                    {
                        totalItemCount = linearLayoutManager.getItemCount();
                        visibleItemCount = linearLayoutManager.getChildCount();
                        firstVisibleItem = linearLayoutManager.findFirstVisibleItemPosition();
    
                        if (loading) {
                            Log.i(TAG, "scrolled loadin "+ loading+" "+saleHeaderList.size());
                            if (totalItemCount > previousTotal) {
                                loading = false;
                                previousTotal = totalItemCount;
                            }
                        }
                        if (!loading && (totalItemCount - visibleItemCount) <= (firstVisibleItem + VISIBLE_THRESHOLD)) {
                            Log.i(TAG, "scrolled !loadin "+ loading+" "+saleHeaderList.size());
                            // Hemos llegado al final
                            if(salesAdapter.getItemCount()>1) {
                                offset = offset + limit;
                                saleHeaderList.addAll(saleHeaderModel.getSaleHeaderCollectPagination(limit,
                                        offset, filter, config.showVerified, config.allCustomers));
                                recyclerView.post(new Runnable() {
                                    public void run() {
                                        // There is no need to use notifyDataSetChanged()
                                        salesAdapter.notifyItemRangeInserted(offset, saleHeaderList.size());
                                    }
                                });
                                loading = true;
                            }
    
                        }
                    }
                }
            });
        }
    

    我发现,当我将分页限制从10改为列表大小时,它会显示所有数据。

    我通过将分页形式从10改为15使其工作,但仍然不知道是什么原因导致了错误

    0 回复  |  直到 5 年前
        1
  •  0
  •   jvargas    5 年前

    我通过将分页形式10更改为15使其工作,但仍然不知道是什么导致了错误。