如何使用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
来构建它。我希望我的适配器对此进行观察。
答案 0 :(得分:0)
您可以使用回收者视图的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);
}
}
});