Библиотека Android-страниц в ArrayAdapter - PullRequest
0 голосов
/ 17 сентября 2018

Как я могу использовать библиотеку нумерации страниц в ArrayAdapter (я не хочу использовать ListView или RecyclerView)?categories - список отображаемой строки.У меня огромный список категорий.Я хочу, чтобы это было разбито на страницы.Как этого добиться?

List<String> categories = getSomeCategories();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(context, android.R.layout.select_dialog_item, categories);
autoCompleteTextView.setAdapter(adapter);

У меня есть метод, который возвращает LiveData<PagedList<String> categories.Я использую LivePagedListBuilder, чтобы построить его.Я хочу, чтобы мой адаптер наблюдал за этим.

1 Ответ

0 голосов
/ 17 сентября 2018

Вы можете обнаружить свитки, используя OnScrollListener представления рециркулятора, затем проверить, является ли видимый элемент последним элементом на странице, и, если это так, загрузить другую страницу.

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {

  @Override
  public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
    super.onScrolled(recyclerView, dx, dy);
    int visibleItemsCount = layoutManager.getChildCount();
    int totalItemsCount = layoutManager.getItemCount();
    int pastVisibleItems = layoutManager.findFirstVisibleItemPosition();
    int lastCompletelyVisibleItem = layoutManager.findLastCompletelyVisibleItemPosition();
    if (dy >= 0
        && (visibleItemsCount + pastVisibleItems) >= totalItemsCount
        && lastCompletelyVisibleItem == elements.size() - 1) {
      offset = elements.size();
      //Start at this offset
      populateRecyclerView(offset);
    }
  }
});
...