Как показать все данные из списка в представлении Recycler - PullRequest
0 голосов
/ 12 марта 2020

Проблема, с которой я сталкиваюсь, заключается в том, что в окне рециркуляции отображается не весь список товаров В моем конкретном случае у меня 38 предметов, и некоторые из них отсутствуют. У меня было 34, и это работало просто отлично. У меня есть панель поиска, и когда я набираю идентификаторы пропущенных элементов, она показывает их. Я не могу найти, где проблема может быть. Любые предложения о том, что искать или изменения, которые я мог бы сделать, очень приветствуются. Не стесняйтесь спрашивать любой код, который, по вашему мнению, необходим.

Так я называю адаптер

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, но до сих пор не знаю, что вызывает ошибку

1 Ответ

1 голос
/ 13 марта 2020

Я сделал это, изменив форму нумерации страниц с 10 на 15, но все еще не знаю, что стало причиной ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...