ListView向上滚动以刷新,向下滚动以将新项目添加到列表中



现在,我有一个存储25个项目的listView,可从API检索。我想要的是列表视图刷新滚动(再次来自API调用的Retreive数据)。并在向下滚动时再添加25个项目。

我可以使用什么?我找到了SwipereFreshlayout,但是,我找不到一种区分向上滚动和向下滚动的方法。

使用RecyclerView代替ListVIew。初始化RecyclerView如下:

recyClerview初始化:

layoutManager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(layoutManager);
videosAdapter = new VideosAdapter();
recyclerView.setItemAnimator(new SlideInUpAnimator());
recyclerView.setAdapter(videosAdapter);
// Pagination
recyclerView.addOnScrollListener(recyclerViewOnScrollListener); 

现在设置OnScrollListener

private RecyclerView.OnScrollListener recyclerViewOnScrollListener = 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) {
    super.onScrolled(recyclerView, dx, dy);
    int visibleItemCount = layoutManager.getChildCount();
    int totalItemCount = layoutManager.getItemCount();
    int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();
    if (!isLoading && !isLastPage) {
        if ((visibleItemCount + firstVisibleItemPosition) >= totalItemCount
                && firstVisibleItemPosition >= 0
                && totalItemCount >= PAGE_SIZE) {
            loadMoreItems();
        }
    }
}
};

获得响应后,您需要再次将收到的数据添加到列表中。

我认为您的问题有点误导。如果我没错,这里可能是事。

  1. 在滚动下滚动上的重新加载列表: - 可以通过使用SwipereFreshlayout来实现此功能。请按照Android教程在您的应用中添加滑动到倒数的Android教程。

  2. 加载更多项目,然后滚动向上: - 这是Lay Loading(分页)的一部分。如果您使用的是ListView,则可以使用OnScrollListenersetFooterView()将其完成。看看这个线程。

建议: - 一个简单的建议使用RecyclerView代替ListView来更好地使用ViewHolder模式。

最新更新