我怎样才能在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
来构建它。我希望我的适配器能够观察到这一点。
您可以使用recycleler视图的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);
}
}
});